【python爬虫】使用Selenium+PhantomJS抓取动态页面

需求

有些网站反爬虫,会在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

即可

你可能感兴趣的:(Python)