需求
有些网站反爬虫,会在js里面动态操作DOM渲染页面,执行js后的页面才是最终页面。
而我们在python中直接用requests.get()获取到的页面,是没执行js的页面,没有我们想要的信息。
解决方法是Selenium+PhantomJS
.
Selenium
– Web Browser Automation
PhantomJS
– a headless WebKit scriptable with a JavaScript API. 简单说,就是个没有界面的浏览器。
安装
安装Selenium
pip install -U selenium
安装PhantomJS
去官方下载对应版本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
即可