因为不想用urllib2了,没有用过splinter,今天就想试试,毕竟后者支持的功能更人性化/自动化。
1,安装splinter
安装过程很简单,安装了pip的话,执行:
$ [sudo] pip install splinter
或者前往splinter的github页面,下载源码(链接地址:https://github.com/cobrateam/splinter),然后执行:
$ git clone git://github.com/cobrateam/splinter.git
$ cd splinter
$ [sudo] python setup.py install
安装过程中需要的依赖库会自动下载,无须担心。
2,安装Chromedriver
因为我需要chrome支持页面测试,所以需要安装chromedriver。安装过程很简单(实际上不需要安装),注意下版本,有些低版本是不支持高版本的chrome的。镜像链接:http://npm.taobao.org/mirrors/chromedriver 。
我是直接把chromedriver.exe扔在在C/windows/system32/文件夹下的,这样就不需要配置环境变量了。
然后我写出了第一行“hello world”,代码如下:
# -*- coding: utf-8 -*-
import sys
from splinter.browser import Browser reload(sys)
sys.setdefaultencoding('utf8')
encoding = lambda x:x.encode('gbk')
browser = Browser(driver_name="chrome")
browser.visit("https://www.baidu.com")
print encoding("测试页面:" + browser.title)
browser.quit()
Run一下,报出了如下的信息:
Error message: “'chromedriver' executable needs to be available in the path”
难道是我忘记把chromedriver.exe加到Path了?但是想了想不应该。因为我是直接把chromedriver.exe放在C/windows/system32/文件夹下面的,所以是不需要在path里加路径。为了慎重起见,我还是在path里加上了“C/windows/system32;”这一条(够蠢的~)。但是一运行报错依旧。
后面我干脆放弃path了,我使用了绝对路径引用,报错依旧。重启?还是不行。上了*查了一下,出现这个问题的人不少,但回答大多数都是建议使用绝对路径,这并没有解决我的问题。就在我放弃splinter,装好selenium的时候,我突然想到,把chromedriver.exe放在script下面试一试?果然,我把chromedriver.exe和我的测试.py放在了相同的路径,运行起来是没有问题的。
记一下,免得自己忘记。