学科分类
目录
网络爬虫

selenium和PhantomJS概述

要想抓取动态网页,需要结合如下两种技术:

1. Selenium

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。

Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。

Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。

Selenium 官方参考文档地址是http://selenium-python.readthedocs.io/index.html

2. PhantomJS

PhantomJS 是一个基于Webkit的“无界面”浏览器,它会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效。

如果我们把Selenium和PhantomJS结合在一起,就可以运行一个非常强大的网络爬虫了,这个爬虫可以处理JavaScript、Cookie、headers,以及任何我们真实用户需要做的事情。

PhantomJS是一个功能完善(虽然无界面)的浏览器,而不是一个Python 库,因此它不需要像Python的其他库一样安装,但我们可以通过Selenium调用PhantomJS来直接使用。

PhantomJS官方参考文档地址是http://phantomjs.org/documentation

点击此处
隐藏目录