[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

近期准备深入学习Python相关的爬虫知识了。假设说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正則表達式"就能搞定的话。那么动态生成的信息页面。如Ajax、JavaScript等就须要通过"Phantomjs
CasperJS + Selenium"来实现了。

所以先从安装和功能介绍入门。后面在介绍一些Python相关的爬虫应用。

一. 介绍

PhantomJS

PhantomJS是一个server端的 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

PS:你能够使用easy_install pip 直接安装pip软件,这更加方便。

第一步:下载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软件

当提示"pip and virtualenv installed"表示成功安装。那怎么測试PIP成功安装呢?

第三步:配置环境变量

此时在cmd中输入pip指令会提示错误“不是内部或外部命令”。

所以须要加入path环境变量。PIP安装完毕后,会在Python安装文件夹下加入python\Scripts文件夹,即在python安装文件夹的Scripts文件夹下。将此文件夹加入环境变量中就可以!步骤例如以下:

第四步:使用PIP命令

以下在CMD中使用PIP命令。“pip list outdate”列举Python安装库的版本号信息。

PIP经常使用的命令例如以下所看到的: (參考pip安装使用具体解释)

Usage:
  pip <command> [options]  

Commands:
  install                     安装软件.
  uninstall                   卸载软件.
  freeze                      按着一定格式输出已安装软件列表
  list                        列出已安装软件.
  show                        显示软件具体信息.
  search                      搜索软件,相似yum里的search.
  wheel                       Build wheels from your requirements.
  zip                         不推荐. Zip individual packages.
  unzip                       不推荐. Unzip individual packages.
  bundle                      不推荐. Create pybundles.
  help                        当前帮助.  

General Options:
  -h, --help                  显示帮助.
  -v, --verbose               很多其它的输出,最多能够使用3次
  -V, --version               现实版本号信息然后退出.
  -q, --quiet                 最少的输出.
  --log-file <path>           覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log
  --log <path>                不覆盖记录verbose输出的日志.
  --proxy <proxy>             Specify a proxy in the form [user:[email protected]]proxy.server:port.
  --timeout <sec>             连接超时时间 (默认15秒).
  --exists-action <action>    默认活动当一个路径总是存在: (s)witch, (i)gnore, (w)ipe, (b)ackup.
  --cert <path>               证书.  

三. 安装Phantomjs+Selenium

通过pip命令安装Selenium:

官网http://phantomjs.org/下载PhantomJS解压后例如以下图所看到的:

调用时可能会报错“Unable to start phantomjs with ghostdriver”如图:

此时能够设置下Phantomjs的路径。同一时候假设你配置了Scripts文件夹环境变量。能够解压Phantomjs到该文件夹下。

參考:Selenium
with GhostDriver in Python on Windows - stackoverflow

四. 測试代码

设置executable_path路径后的代码例如以下:

from selenium import webdriver
driver = webdriver.PhantomJS(executable_path="F:\Python\phantomjs-1.9.1-windows\phantomjs.exe")
driver.get("http://www.baidu.com")
data = driver.title
print data

执行结果例如以下图所看到的:

获取"百度一下,你就知道"。相应HTML源代码:

<title>百度一下。你就知道</title>

可是总会弹出PhantomJS的黑框,怎么办呢?同一时候怎样通过Python直接调用Phantomjs执行JS呢?

同一时候以下的代码能够进行截图:

from selenium import webdriver
driver=webdriver.PhantomJS(executable_path="F:\Python\phantomjs-1.9.1-windows\phantomjs.exe")
driver.get("http://www.csdn.net")
data = driver.title
driver.save_screenshot(‘csdn.png‘)
print data

输出例如以下图所看到的,图片太长只部分:

>>>
CSDN.NET - 全球最大中文IT社区。为IT专业技术人员提供最全面的信息传播和服务平台
>>> 

PS:我准备使用C#调用PhantomJS.exe完毕页面截图功能,可是没有成功,并且使用WebBrowser中DrawToBitmap函数获取图片。因为ActiveX 控件不支持DrawToBitmap方法,获取总是空白的,各种问题。

參考资料:

数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置(强推)

数据抓取的艺术(二):数据抓取程序优化

Python使用Selenium/PhantomJS(强推)

Python selenium的js扩展实现

使用python+phantomjs抓取动态页面

用phantomjs 进行网页整页截屏

Selenium-webdriver系列教程(15)——万能的截图(强推)

pyspider 爬虫教程(三):使用 PhantomJS 渲染带 JS 的页面

【PHP】【.NET】【JS】【AJAX】关于抓取网页源码的问题

使用python/casperjs编写终极爬虫-clientApp的抓取

Python 爬虫怎样获取 JS 生成的 URL 和网页内容-知乎

通过 WebBrowser 获取网页截图 - C#

Control.DrawToBitmap 方法不支持Ajax - 官网

IE浏览器整页截屏程序(二) - C#

C# 网络编程之最简单浏览器实现 - 自己

        最后希望该篇基础性文章对你有所帮助吧!假设有不足之处,还请海涵~

(By:Eastmount 2015-8-19 晚上8点   http://blog.csdn.net/eastmount/

时间: 2024-12-16 18:41:45

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium的相关文章

[Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的"原图"等,此时尝试学习Phantomjs和CasperJS来解决这个问题.这第一篇文章当然就是安装过程及入门介绍. 一. 安装Phantomjs 下载地址:http://phantomjs.org/        官网介绍:          PhantomJS is a headless WebKit scriptable with a JavaScript

Windows下安装pip

很多东西不记下来就忘记了.. 在Windows下安装pip其实也比较简单,看了一些教程是这样的: 1.在以下地址下载最新的PIP安装文件:http://pypi.python.org/pypi/pip#downloads 2.解压安装 3.下载Windows的easy installer,然后安装:http://pypi.python.org/pypi/setuptools 4.安装setuptools工具 5.命令行工具cd切换到pip的目录,找到setup.py文件,然后输入python s

在Windows下安装pip

本部分介绍两个: 一.Python3.4.x下的pip 二.Python2.7.x下的pip(我就不信了!我在Python2.7中就成功不了!) 一.改用Python3.4.1 之前用的是Python2.7.4,所以要装pip 昨天晚上攻到2点安装pip,殊不知今天早晨用pip install virtualenv出现error 在stackoverflow中找到关于在Windows下面安装pip的帖子 http://stackoverflow.com/questions/4750806/how

python笔记:windows 下安装 python lxml

原文:http://blog.csdn.net/zhaokuo719/article/details/8209496 windows 环境下安装 lxml python 1.首先保证你的python 环境安装完善 2.把http://peak.telecommunity.com/dist/ez_setup.py 文件下载到电脑上 3.打开运行 cmd  执行:python ez_setup.py 4.安装完毕 ,PATH环境变量里面添加路径:如:E:\python27\Scripts(E:\py

Windows下安装pip管理scikit-learn

最近在研究scikit-learn的开源包,总是遇到scikit-learn包找不到的问题,按照以下步骤问题就解决了,具体步骤如下: 1.  安装python,一般为2.7,网址:https://www.python.org/downloads/ 2.  Python安装distribute:打开windows的cmd,切换到distribute-0.6.36目录. 输入:python setup.py install.网址:https://pypi.python.org/pypi/distri

[Python学习] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的"原图"等,此时尝试学习Phantomjs和CasperJS来解决这个问题.这第一篇文章当然就是安装过程及入门介绍. 一. 安装Phantomjs 下载地址:http://phantomjs.org/ 官网介绍: PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fas

windows下安装pip、easy_install下出现编码问题(转)

原文:http://blog.csdn.net/meylovezn/article/details/18080515 关于编码问题的终极解决方案:在python的Lib\site-packages文件夹下新建一个sitecustomize.py文件,输入:import syssys.setdefaultencoding('gb2312') 这里要注意一点是:这里面你可以设置GBK或者utf8 或者其他类型的编码格式,不一定非要gb2312,主要看你操作的环境需要什么编码格式

【python学习】windows下安装MySQLdb

今天真是纠结的一天.... 本来打算在pycharm里面开发python web,发现mysql驱动没有,就想去安装一个MySQLdb 结果花了好久才安装好MySQLdb 其实,pycharm里面不需要安装MySQLdb,里面自带驱动下载接口,下载的是mysql-connector 我的64位系统win7,准备安装的编译过的MySQLdb ,我根据http://www.codegood.com/downloads 选择的是MySQL-python-1.2.3.win32-py2.7.exe ,

linux和windows下安装python拓展包及requirement.txt安装类库

http://blog.csdn.net/pipisorry/article/details/39902327 python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\PythonXY\Lib\site-packages 測试和升级python拓展安装包pip 查看pip安装时相应的python版本号 which pip /d/python3.4.2/Scripts