- A+
Selenium模拟浏览器
在进行爬虫的时候,对于采用了异步加载技术的网页,有时候通过逆向工程进行爬虫构造是比较困难的。这个时候我们可以使用Selenium模块模拟浏览器的各种操作,来达到获取我们所需要数据的目的。
Selenium概念
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。(来源:百度百科)
由于Selenium直接运行在浏览器中,就像真正的用户在操作的这个特性,Seleniumu也是一个强大的网络数据采集工具,它可以让浏览器自动加载页面,获取那些使用了异步加载技术的网页的数据。
Selenium安装
Selenium模块是Python的第三方库,可以通过PIP进行安装。打开cmd命令行工具,输入pip3 install selenium
,然后回车,等待安装完成即可。
查看Selenium支持的浏览器
Selenium自己不带浏览器,需要配合第三方浏览器使用。Selenium的Webdriver功能支持的浏览器,我们可以通过以下操作进行查看。
- cmd中输入
python
,并回车 - python命令行界面,输入如下代码
from selenium import webdriver
help(webdriver)
PhantomJS
从selenium支持的浏览器截图来看,目前支持以下的浏览器。
android
blackberry
chrome
common
edge
firefox
ie
opera
phantomjs
remote
safari
support
webkitgtk
由于PhantomJS是一种无界面的"无头"浏览器,开销小,速度快,所以我优先考虑使用PhantomJS。
PhantomJS的安装
- 进入PhantomJS官网进行下载,或者直接点击链接https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip下载phantomjs2.1.1版本。
PS:如果不清楚Python的安装路径,可以通过在python命令行中输入以下代码进行查看。
import sys
print(sys.path)
- 测试是否成功安装了PhantomJS
from selenium import webdriver
driver = webdriver.PhantomJS()