今天要从国外的网站上下载一个学术会议的几百篇pdf文献,具体网址为https://www.onepetro.org/conferences/SPE/17ADIP/all?start=0&rows=700。这个网站需要登录后手动一篇一篇的下载,非常耗时。于是用Python+selenium写了个小程序,自动下载保存这些pdf文件。开始在Firefox浏览器中试验,试了好多次都没有成功。Firefox老是打开pdf文件而不是将文件保存到本地。后来改为Chrome浏览器,一切都很顺利。详情见代码:

import time
from selenium.webdriver.common.keys import Keys
from selenium import webdriverimport random'''
Automatically download SPE papers from a conference
i.e. https://www.onepetro.org/conferences/SPE/17ADIP/all?start=0&rows=700
Author: Carl Wu, 吴文旷
'''
#The starting URL
start_url = "https://www.onepetro.org/conferences/SPE/17ADIP/all?start=0&rows=700"#设置Chrome的选项
options = webdriver.ChromeOptions()
profile = {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}],"download.default_directory": "D:\\Carl\\dev\\test\\"}
options.add_experimental_option("prefs", profile)
browser = webdriver.Chrome(r"C:\Users\Carl\AppData\Local\Google\Chrome\Application\chromedriver.exe",chrome_options=options)# credentials
username = 'xxxxxxx'
password = 'xxxxxxx'#Open the URL
browser.get(start_url)  ##首先等几秒加载首页,然后要点击一下Login/Register链接,才能看见用户名和密码输入框
time.sleep(6)
elem_register = browser.find_element_by_id('p13n-menu')
elem_register.click()
time.sleep(2)#输入用户名
user_blank = browser.find_element_by_id('l-email')
user_blank.clear()
user_blank.send_keys(username)#输入密码
password_blank = browser.find_element_by_id('l-password')
password_blank.clear()
password_blank.send_keys(password)#在登陆页面上找到登陆(login)按钮并点击
#虽然找到该按钮,但是点击不起作用
elem_login = browser.find_element_by_xpath('//form[@id="sgk-login-form"]/fieldset/div[@class="form-actions"]/input[@class="btn btn-pri"]')
print(elem_login.get_attribute('value'))
print(elem_login.get_attribute('name'))
# 点击登录按钮
# webdriver.common.action_chains.ActionChains(browser).click(elem_login).perform()
time.sleep(1)# 为了正常登陆,只好在密码空格上按下回车键模拟登陆
password_blank.send_keys(Keys.ENTER)
time.sleep(28)
pageSource = browser.page_source#获得所有的SPE paper的链接,链接的text为Get PDF
all_papers_link = browser.find_elements_by_link_text("Get PDF")#打印链接并下载pdf文档
for onePaperLink in all_papers_link:url = onePaperLink.get_attribute('href')print(url)browser.get(onePaperLink.get_attribute('href'))# a.click()# wget.download(url,out='D:\\Carl\\dev\\test\\')time.sleep(22 + random.randint(1, 5))browser.quit()

用Python和selenium下载pdf文件相关推荐

  1. 【python pdf 文件下载】给定pdf url下载pdf文件

    python从url获取pdf文件并保存在本地,主要思路如下: 1.借助requests下载文件 2.将文件转换为字节流 3.将字节流保存在本地 # -*- coding: utf-8 -*- imp ...

  2. 一步一步教你用Python爬虫框架Scrapy下载Pdf文件

    哈喽,感谢你在这寂寞的晚上看到这篇寂寞的文章.今天接到朋友的一个需求,下载pdf文件并且用网络上的书名保存.想到下载pdf文件啊,虽然requests也能实现,但是速度还是太慢了,于是乎,Scrapy ...

  3. selenium - firefox下载 pdf 文件 或者任何文件 不弹窗的终极解决方法

    今天试着用 firefox 通过自动化下载文件,使用网上教程 fp = webdriver.FirefoxProfile() fp.set_preference("browser.downl ...

  4. python处理pdf文件_好玩的Python 篇一:用Python显示和处理PDF文件

    好玩的Python 篇一:用Python显示和处理PDF文件 2020-05-25 00:20:30 0点赞 0收藏 0评论 pdf是电子书,文档经常会用的格式,除了下载各种阅读器以外,我们也可以用P ...

  5. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  6. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  7. python LAADS+Selenium下载MODIS数据

    from selenium import webdriver from time import sleep import tempfile import os,sys import pandas as ...

  8. Python使用pdfminer3k提取PDF文件中的文本

    推荐教材: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

  9. python读取pdf文件_深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

最新文章

  1. 相机模型--Catadioptric Omnidirectional Camera
  2. 樊登读书赋能读后感_文化赋能,助力终端 | 第五届齐心办公节携手樊登读书点亮办公生活...
  3. tensorflow入门教程和底层机制简单解说——本质就是图计算,自动寻找依赖,想想spark机制就明白了...
  4. JQuery中$.ajax()方法参数详解(转)
  5. iOS - 沙盒文件操作指南
  6. 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.2 Bundle
  7. 前端基础-HTML的的标签详解
  8. 【JAVA基础篇】彻底搞懂拆箱装箱
  9. php页面文件后缀名,PHP中获取文件扩展名的N种方法
  10. (六)Docker简介
  11. yum命令在线下载mysql数据库_用yum命令安装mysql数据库
  12. 阅读作业二-----读Lost in CatB有感 by 李栋
  13. python 小兵(2)
  14. 【PID优化】基于matlab天牛须算法PID控制器优化设计【含Matlab源码 1312期】
  15. 2019美赛M(一等/优异)奖,给想参加美赛的同学们的干货建议
  16. selenium下载图片
  17. C# 中取绝对值的函数
  18. 仿原生安卓文件管理器
  19. 硬盘读不出来如何恢复?好用的数据恢复软件分享
  20. 我们经常看到的”缺省“是什么意思

热门文章

  1. uniapp 微信公众号网页获取微信头像昵称
  2. CentOS7 源码安装 smokeping 2.7
  3. 299. 猜数字游戏。
  4. [检测过检测] 重写 ReadProcessMemory 、WriteProcessMemory
  5. 搜狗人工智能机器人挑战人类知识问答节目
  6. 学了python可以做什么兼职,学python真的能做兼职吗
  7. 生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
  8. IOCP之AcceptEx的问题(1)
  9. 面向对象编程是计算机科学的最大错误
  10. Android gradle implementation与api的区别及引用传递