Selenium的安装和简单实用——PhantomJS安装
Selenium是一个用于Web应用程序测试的工具。
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Chrome,Opera等。
这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
而用在爬虫上则是模拟正常用户访问网页并获取数据。我们可以利用它来模拟用户点击访问网站,绕过一些复杂的认证场景
通过selenium + 驱动浏览器这种组合可以直接渲染解析js,绕过大部分的参数构造和反爬
注意事项:
新版本的Selenium已经不支持phantomis,原作者也已经放弃维护该项目了。
安装
ChromeDriver(浏览器驱动)安装
使用selenium驱动chrome浏览器需要下载chromedriver,而且chromedriver版本需要与chrome的版本对应,版本错误的话则会运行报错。
Chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html
or https://sites.google.com/a/chromium.org/chromedriver/downloads
Chromedriver与Chrome版本映射表:
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
Mac/Linux
下载完成解压后,将文件移动至/usr/local/bin
目录中,则可以正常使用。
Windows
下载完成解压后,将文件移动到一个配置了环境变量的文件夹中,例如你的Python安装文件夹。
将解压的exe文件放在环境变量下是为了方便使用,如果不在环境变量中,还可以在代码里面声明驱动的位置。
但是为了方便项目部署的,或者为了方便容易打包,我们可以将Chromedriver.exe放到我们的项目目录中,
然后再初始化Chrome Webdriver对象时,传入chromedirver.exe的路径
如下所示:
from selenium import webdriver browser = webdriver.Chrome(executable_path='chromedriver.exe')
引号之内的就是路径,可根据自己文件的放置情况来填写
PhantomJS的安装
下载链接,下载好的压缩文件解压到环境变量中,建议解压到Python中,安全起见,将Phantomjs.exe文件复制一份放在Python3文件夹下。
Selenium安装
Selenium
的安装非常简单,直接pip就可以搞定。
pip install selenium
简单使用
现在运行一个空白页面的浏览器窗口
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 实例化一个启动参数对象 chrome_options = Options() # 设置浏览器窗口大小 chrome_options.add_argument('--window-size=1366,768') # 启动浏览器 browser = webdriver.Chrome(chrome_options=chrome_options)
点击运行,就会自动弹出一个空白的浏览器窗口了
接下来,我们再来尝试访问一下百度的首页面
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 实例化一个启动参数对象 chrome_options = Options() # 设置浏览器窗口大小 chrome_options.add_argument('--window-size=1366,768') # 启动浏览器 browser = webdriver.Chrome(chrome_options=chrome_options) # 请求百度首页 browser.get('http://www.baidu.com')
这样程序点击运行,弹出的浏览器会自动转到百度的首页了
更加详细的内容,会在接下来的内容中讲到