最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话;那么动态生成的信息页面,如Ajax、JavaScript等就需要通过"Phantomjs + CasperJS + Selenium"来实现了。所以先从安装和功能介绍入门,后面在介绍一些Python相关的爬虫应用。
PhantomJS
PhantomJS是一个服务器端的 JavaScript API 的WebKit(开源的浏览器引擎)。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas 和 SVG。PhantomJS可以用于页面自动化,网络监测,网页截屏,以及无界面测试等。
Selenium
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性、测试系统功能,它ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
PIP
在介绍介绍它们之前,需要安装PIP软件。正如xifeijian大神所说:“作为Python爱好者,如果不知道easy_install或者pip中的任何一个的话,那么......”。
easy_insall的作用和perl中的cpan,ruby中的gem类似,都提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信息,删除package等功能。老版本的python中只有easy_install,没有pip。常见的具体用法如下:
easy_install的用法: 1) 安装一个包 $ easy_install <package_name> $ easy_install "<package_name>==<version>" 2) 升级一个包 $ easy_install -U "<package_name>>=<version>" pip的用法 1) 安装一个包 $ pip install <package_name> $ pip install <package_name>==<version> 2) 升级一个包 (如果不提供version号,升级到最新版本) $ pip install --upgrade <package_name>>=<version> 3)删除一个包 $ pip uninstall <package_name>
第一步:下载PIP软件
可以在官网http://pypi.python.org/pypi/pip#downloads下载,同时cd切换到PIP目录,在通过python setup.py install安装。而我采用的是下载pip-Win_1.7.exe进行安装,下载地址如下:
https://sites.google.com/site/pydatalog/python/pip-for-windows
第二步:安装PIP软件
1 Usage: 2 pip <command> [options] 3 4 Commands: 5 install 安装软件. 6 uninstall 卸载软件. 7 freeze 按着一定格式输出已安装软件列表 8 list 列出已安装软件. 9 show 显示软件详细信息. 10 search 搜索软件,类似yum里的search. 11 wheel Build wheels from your requirements. 12 zip 不推荐. Zip individual packages. 13 unzip 不推荐. Unzip individual packages. 14 bundle 不推荐. Create pybundles. 15 help 当前帮助. 16 17 General Options: 18 -h, --help 显示帮助. 19 -v, --verbose 更多的输出,最多可以使用3次 20 -V, --version 现实版本信息然后退出. 21 -q, --quiet 最少的输出. 22 --log-file <path> 覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log 23 --log <path> 不覆盖记录verbose输出的日志. 24 --proxy <proxy> Specify a proxy in the form [user:passwd@]proxy.server:port. 25 --timeout <sec> 连接超时时间 (默认15秒). 26 --exists-action <action> 默认活动当一个路径总是存在: (s)witch, (i)gnore, (w)ipe, (b)ackup. 27 --cert <path> 证书. 28
通过pip命令安装Selenium:
1 from selenium import webdriver 2 driver = webdriver.PhantomJS(executable_path="F:\Python\phantomjs-1.9.1-windows\phantomjs.exe") 3 driver.get("http://www.baidu.com") 4 data = driver.title 5 print data
1 from selenium import webdriver 2 driver=webdriver.PhantomJS(executable_path="F:\Python\phantomjs-1.9.1-windows\phantomjs.exe") 3 driver.get("http://www.csdn.net") 4 data = driver.title 5 driver.save_screenshot(‘csdn.png‘) 6 print data
>>> CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台 >>>
参考资料:
数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置(强推)
数据抓取的艺术(二):数据抓取程序优化
Python使用Selenium/PhantomJS(强推)
Python selenium的js扩展实现
使用python+phantomjs抓取动态页面
用phantomjs 进行网页整页截屏
Selenium-webdriver系列教程(15)——万能的截图(强推)
pyspider 爬虫教程(三):使用 PhantomJS 渲染带 JS 的页面
【PHP】【.NET】【JS】【AJAX】关于抓取网页源代码的问题
使用python/casperjs编写终极爬虫-客户端App的抓取
Python 爬虫如何获取 JS 生成的 URL 和网页内容-知乎
通过 WebBrowser 获取网页截图 - C#
Control.DrawToBitmap 方法不支持Ajax - 官网
IE浏览器整页截屏程序(二) - C#
C# 网络编程之最简单浏览器实现 - 自己
最后希望该篇基础性文章对你有所帮助吧!如果有不足之处,还请海涵~
(By:Eastmount 2015-8-19 晚上8点 http://blog.csdn.net/eastmount/)
[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium
原文:http://www.cnblogs.com/eastmount/p/5055930.html