如今的网站有两种。一种是同步加载的。另一种是异步加载的,也即我们常说的用ajax。对于那种同步加载的网站,普通的爬虫程序轻轻松松的就能搞定。但是对于那种异步请求数据的网站,就不能走寻常路了。对于这种情况,通常的解决方案是使用selenimu+PhantomJS组合来完成。有的童鞋可能还不是很了解这两者之间的关系,接下来做个简单介绍:
- selenium:是一个web的自动化测试工具,最初是为网站自动化测试而开发的.我们可以通过他使用代码来操作浏览器以及其中的网页元素。selenium支持绝大部分的浏览器,以及类似PhantomJS这种无界面的浏览器。
- PhantomJS:是一个基于Webkit的“无界面”(headless)浏览器。他除了没有界面,其他功能跟普通浏览器是一样的。也正因为他没有界面,因此运行效率比普通浏览器要高。
PhantomJS安装:
从http://phantomjs.org/下载合适自己电脑版本的PhantomJS。然后根据自己的操作系统配置其环境变量。比如mac或者linux,可以把PhantomJS放置在/usr/bin或者/usr/local/bin中。而windows用户也可以在我的电脑->属性->环境变量中配置好PhantomJS所在的路径。
selenium使用介绍:
1.安装:sudo pip install selenium。
2.使用以下代码做个简单介绍.这篇教程不打算对selenium做细节的讲解。
# 导入webdriver对象
from selenium import webdriver
# 初始化PhantomJS浏览器
driver = webdriver.PhantomJS()
# 访问百度
driver.get('http://www.baidu.com/')
# 获取id为wrapper这个元素的text
driver.find_element_by_id("wrapper").text
..