chromedriver 下载_使用selenium批量下载pdf,ppt(无验证码)爬虫小白学习日志(1)...

f251f8bfa3179678919aef40f3c37866.png

以学校网站举例

1.首先需要的包如下:scrapy selenium mouse chromedriver.exe(注意要下载对应版本的chrome,链接:http://chromedriver.storage.googleapis.com/index.html)

安装方式:进入cmd 输入 pip install 包的名称 -i https://pypi.douban.com/simple

此处省略scrapy生成爬虫的方法,这个爬虫不需要scrapy也可以。

2.配置Chromedriver:

因为目的是要下载pdf,利用chrome浏览器中可以设置点击pdf,ppt链接时可以直接下载不打开这一特点,我们只要配置好Chromedriver,点击链接即可下载。

960d22444e6d88e9e23592573ba15c1d.png

代码:

from selenium import webdriver
options = webdriver.ChromeOptions()
profile = {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}],
"download.default_directory": "文件的存放路径"}
options.add_experimental_option("prefs", profile)
browser = webdriver.Chrome(executable_path="chromedriver.exe的位置",chrome_options=options)

3.登陆网站

ddd7296c183aa9d9f067e7a5150d54e4.png

这里以学校网站为例
进入网站登陆页面,f12并用查看器左边箭头定位输入用户名和密码的位置,右键复制xpath一般登陆页面比较固定,复制绝对路径就好。

d8a426c3b043e36ae1784d60b5f0cfa8.png

使用send.keys()发送

login的方式有很多种,也可以找到那个键后send_keys(Keys.ENTER)

这里我用mouse包中的move,

from mouse import move,click

使用屏幕坐标查找工具定位log in 这个button,move(x,y),然后click()即可

7cd97171fad1fc9cc09326e439114d21.png

屏幕坐标工具:

链接:https://pan.baidu.com/s/191BjQIjIwjcaTOyrSbwX6w

提取码:e2ih

4.分析爬取页面信息

登录后,就可以访问你想要爬取的页面了。

比如我进入这一个课程页面

33022b34b78b80f47732d27cedd1e156.png

定位到其中一个pdf对应的url,直接用css将对应class中所有的信息提取出来,然后用get_attribute('href)将所有url提取出来

2adafe91882555ed786dc13ffee1c490.png

64a8e8c81b4261cf82c8cb2b8def12cd.png

5.分析爬取的url

但是我们还需要注意,有可能这个页面中这个属性中的url不一定都是pdf和ppt的,可能还有很多其他我们不需要的,这个时候就需要要筛选。需要我们观察url的结构,这里我是这样正则的,

观察到url的区别在于中间的出现resource的是我们需要的,其他的不需要

696e7e8e048603a00d17dd85452ae592.png

写出正则^.*?resource.*?$,然后如下

47342cd7f1ea74cf9671c6c3d881fa8b.png

获得所有的url后,到这里就可以直接用for循环get所有的url了,然后定义一个main文件运行,程序会自动下载到第2步设置的目录里

d9363a2c35f90f1d55cdeeb9a59ae5cf.png

47caa1a1d94e37fd4d6010f4a9bef8f6.png

这个爬虫最关键步骤还是第二步的配置,

我一开始使用wget包保存失败了,后来找资料在知道可以这样配置Chromedriver的pdf下载。

大概就是这样了,如果看完有帮助的话点个赞鸭,谢谢。

1811038f7e8eb997c6dd9deddbb73b3a.png
附上一只可爱的三胖
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值