1、获取ajax数据的方式
- 直接分析ajax调⽤的接⼝。然后通过代码请求这个接口。
- 使⽤Selenium+chromedriver模拟浏览器行为获取数据。
方式 | 优点 | 缺点 |
---|---|---|
分析接口 | 直接可以请求到数据。不需要做⼀些解析⼯作。代码量少,性能高 | 分析接⼝⽐较复杂,特别是⼀些通过js混淆的接⼝,要有⼀定的js功底。容易被发现是爬虫。 |
selenium | 直接模拟浏览器的行为。浏览器能请求到的,使⽤selenium也能请求到。爬⾍更稳定。 | 代码量多。性能低。 |
2、Selenium+chromedriver获取动态数据
selenium是⼀个web的⾃动化测试⼯具,最初是为⽹站⾃动化测试⽽开发的,selenium可以直接运⾏在浏览器上,它⽀持所有主流的浏览器,可以接收指令,让浏览器⾃动加载⻚⾯,获取需要的数据,甚⾄⻚⾯截屏。
chromedriver是⼀个驱动Chrome浏览器的驱动程序,使⽤他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。
3、下载chromedrive
ChromeDriver 镜像: https://npmmirror.com/mirrors/chromedriver/
1、安装Selenium和chromedriver
- 安装Selenium:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
2.安装chromedriver:
下载完成后,将chromedriver.exe放在谷歌浏览器安装目录下和python.exe的目录下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahSkjOuP-1681285156618)(en-resource://database/5127:1)]
4、Selenium案例
from selenium import webdriver
# 实例化浏览器
driver = webdriver.Chrome()
# 发送请求
driver.get('https://www.baidu.com')
# 退出浏览器
driver.quit(