![f251f8bfa3179678919aef40f3c37866.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/ddd7296c183aa9d9f067e7a5150d54e4.png)
这里以学校网站为例
进入网站登陆页面,f12并用查看器左边箭头定位输入用户名和密码的位置,右键复制xpath一般登陆页面比较固定,复制绝对路径就好。
![d8a426c3b043e36ae1784d60b5f0cfa8.png](https://img-blog.csdnimg.cn/img_convert/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://img-blog.csdnimg.cn/img_convert/7cd97171fad1fc9cc09326e439114d21.png)
屏幕坐标工具:
链接:https://pan.baidu.com/s/191BjQIjIwjcaTOyrSbwX6w
提取码:e2ih
4.分析爬取页面信息
登录后,就可以访问你想要爬取的页面了。
比如我进入这一个课程页面
![33022b34b78b80f47732d27cedd1e156.png](https://img-blog.csdnimg.cn/img_convert/33022b34b78b80f47732d27cedd1e156.png)
定位到其中一个pdf对应的url,直接用css将对应class中所有的信息提取出来,然后用get_attribute('href)将所有url提取出来
![2adafe91882555ed786dc13ffee1c490.png](https://img-blog.csdnimg.cn/img_convert/2adafe91882555ed786dc13ffee1c490.png)
![64a8e8c81b4261cf82c8cb2b8def12cd.png](https://img-blog.csdnimg.cn/img_convert/64a8e8c81b4261cf82c8cb2b8def12cd.png)
5.分析爬取的url
但是我们还需要注意,有可能这个页面中这个属性中的url不一定都是pdf和ppt的,可能还有很多其他我们不需要的,这个时候就需要要筛选。需要我们观察url的结构,这里我是这样正则的,
观察到url的区别在于中间的出现resource的是我们需要的,其他的不需要
![696e7e8e048603a00d17dd85452ae592.png](https://img-blog.csdnimg.cn/img_convert/696e7e8e048603a00d17dd85452ae592.png)
写出正则^.*?resource.*?$,然后如下
![47342cd7f1ea74cf9671c6c3d881fa8b.png](https://img-blog.csdnimg.cn/img_convert/47342cd7f1ea74cf9671c6c3d881fa8b.png)
获得所有的url后,到这里就可以直接用for循环get所有的url了,然后定义一个main文件运行,程序会自动下载到第2步设置的目录里
![d9363a2c35f90f1d55cdeeb9a59ae5cf.png](https://img-blog.csdnimg.cn/img_convert/d9363a2c35f90f1d55cdeeb9a59ae5cf.png)
![47caa1a1d94e37fd4d6010f4a9bef8f6.png](https://img-blog.csdnimg.cn/img_convert/47caa1a1d94e37fd4d6010f4a9bef8f6.png)
这个爬虫最关键步骤还是第二步的配置,
我一开始使用wget包保存失败了,后来找资料在知道可以这样配置Chromedriver的pdf下载。
大概就是这样了,如果看完有帮助的话点个赞鸭,谢谢。
![1811038f7e8eb997c6dd9deddbb73b3a.png](https://img-blog.csdnimg.cn/img_convert/1811038f7e8eb997c6dd9deddbb73b3a.png)