前言
我们做爬虫的的时候,经常会遇到页面中的部分是由js生成并渲染的情况,这时爬虫爬到的页面还并非呈现在用户面前的页面,要得到需要的内容,可以用大招…还是用浏览器核心来渲染一遍
我准备尝试用PhantomJs–基于Webkit的服务端JS API(说大白话点,就是个隐形的浏览器,并且这货还提供了文件处理的IO操作)用来帮我们处理爬虫爬到的页面的渲染工作。
安装PhantomJS
下载地址
这个是已经编译好的
不要用npm装,不然会不能正常运行
下载后解压后把目录下的bin路径加入PATH中就可以了
1 | phantomjs --version |
如果不报错,则已经安装好了
番外:想要安装HomeBrew
那就这么安吧
1 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null |
Scrapy安装
略 (假设你已经懂Scrapy怎么玩)
安装selenium
selenium支持在Python中使用多种浏览器来模拟行为,同样PhantomJS也不在话下
1 | sudo pip install selenium |
使用
Scrapy中间件增加一个
1 | from selenium import webdriver |
如果不想在所有爬虫中使用,可以在reqeust中加meta参数来控制