前两天接到一个需求,需要将一个网站上更新的数据,实时采集到自己的系统中。
遇到问题:
1、目标网站使用VUE开发的前端,数据通过接口返回
2、接口返回数据是经过加密
拙见,目前只能想等待页面数据渲染完成后,进行页面数据采集。
后来发现了Selenium,但使用php操作Selenium还有些麻烦,索性直接用python了,因为其中有现成的包可以用,好了下面进入主题
ChromeDriver
Selenium是操作浏览器,做web自动化测试的工具,使用它需要下载对应版本浏览器驱动,这里我选择的是Chrome浏览器,需要下载对应版本的ChromeDriver
推荐由阿里云赞助的镜像地址:https://npmmirror.com
最新114以上版本以上地址如果没有更新,可以使用以下地址下载
https://googlechromelabs.github.io/chrome-for-testing/
ChromeDriver版本需要和Chrome版本对应
首先查看当前Chrome浏览器版本,如下图找到版本信息
如图,我的版本是112.0.5615.50,那么在镜像站中找到对应版本的Driver
前面版本一致就可以了,小版本没有什么影响。进去后下载对应版本就可以了,我这里是windows系统下载win32版本的压缩包
将其解压,得到.exe文件,无需安装,将其移动到项目目录即可
Selenium安装
Selenium在python中有现成的包可以用,所以无需单独下载,非常方便。使用以下命令进行安装
pip install selenium
就是这么简单就安装成功了
python调用Selenium
导入包方法,并驱动chrome
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver import ChromeOptions option = ChromeOptions() # 执行完成不关闭浏览器 option.add_experimental_option('detach', True) path = Service('./chromedriver.exe') driver = webdriver.Chrome(options=option,service=path) driver.close()
上面是打开到关闭chrome流程,运行后成功打开chrome浏览器说明已经成功了
避免篇幅太长,Selenium方法接口详细使用说明,请阅读《Python中Selenium包操作方法汇总》