*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
目录
准备工具:
思路:
具体操作:
调用需要的库:
启动浏览器驱动:
代码主体:
完整代码(解析注释):
Python环境;
安装selenium库;
Python编辑器;
待爬取的网站;
安装好的浏览器;
与浏览器版本相对应的浏览器驱动。
使用Python打开浏览器~~>>进入待爬取的网站~~>>模拟用户点击文章~~>>跳转至文章界面~~>>将文章界面数据保存下来~~>>关闭文章界面~~>>回到原网页~~>>模拟用户点击下一个文章~~>>将第一页全部爬取完毕~~>>模拟用户点击下一页~~>>将所有爬取完毕关闭浏览器.
下载浏览器驱动:
chrome驱动下载chromedriver.storage.googleapis.com/index.html
浏览器驱动需要放在Python环境变量中
查看Python存放路径
在命令行中输入Python,进入Python中
>>> import sys >>> sys.path
或者命令行输入where python
range(1,5)设置循环次数为四次
使用selenium隐式等待:
当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找
find_elements属于selenium中复数的定位元素内容。find_elements主要定位定位页面上多个相同的元素坐标。
By.CSS_SELECTOR 可以通过多个属性(比如有多个class的)进行定位
'.listContent' 包括所有需要爬取的文章
try做异常处理
find_element定位方法和find_elements其实一样的,只不过多了一个s相当于定位多组
由于每次点击都会打开新的标签页,所以需要定义一个初始页
切换到新打开的标签页
保存完毕后切换到初始页
打开文件文件路径;
打开文件,并设置读写权限(w覆盖并写入,b二进制数据);
write将数据写入文件,encode将数据进行编码