有些网站反爬虫,会在js里面动态操作DOM渲染页面,执行js后的页面才是最终页面。
而我们在python中直接用requests.get()获取到的页面,是没执行js的页面,没有我们想要的信息。
解决方法是Selenium+PhantomJS
.
Selenium
- Web Browser Automation
PhantomJS
- a headless WebKit scriptable with a JavaScript API. 简单说,就是个没有界面的浏览器。
pip install -U selenium
去官方下载对应版本http://phantomjs.org/download.html。并将解压后的可执行文件放到环境变量可以搜索到的地方。使得可以在命令行直接执行phantomjs命令。
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(url)
content = driver.page_source
只需要在原先用
resp = requests.get(url)
content = resp.content
的地方,替换成
driver.get(url)
content = driver.page_source
即可