关于无界面浏览器的使用
phantomJS
是一个独立的无界面浏览器,也称JS
模拟器,之前介绍的使用谷歌,火狐等浏览器界面操作的,并不适合在服务器上使用,而phantomJs
就适合.
一、环境的搭建
- 1、官网地址
- 2、下载地址
3、
mac
上配置环境- 1.将下载的文件解压放到自己喜欢的位置
2.打开文件
vim ~/.bash_profile
3.配置环境变量
export PATH="/Users/name/Applications/phantomjs/bin:$PATH"
4.执行
source ~/.bash_profile
5.测试
phantomjs --version
二、PhantomJs
与selenium
的集成
1、测试代码
from selenium import webdriver # 这里的executable_path="你上面解压的路径" browser = webdriver.PhantomJS(executable_path='/Users/shuiping.kuang/Documents/software/phantomjs-2.1.1-macosx/bin/phantomjs') browser.get('http://httpbin.org/ip') print(browser.current_url) print(browser.page_source)
2、运行上面的代码会出现一个警告提示
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
三、使用Headless Chrome
浏览器的介绍
- 1、关于
Headless Chrome
的介绍
Headless Chrome
是 Chrome
浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome
支持的特性运行你的程序。相比于现代浏览器,Headless Chrome
更加方便测试 web
应用,获得网站的截图,做爬虫抓取信息等。相比于较早的 PhantomJS
,SlimerJS
等,Headless Chrome
则更加贴近浏览器环境。
- 2、
Headless Chrome
作用
为了提高selenium
脚本的执行速度,我们可能会考虑使用PhantomJS
这类的Headless
浏览器,但这些工具对JavaScript
支持不好或者对web的支持不好,占用资源多,跟真实浏览器存在一定的差异等等问题。Chrome
浏览器提供的Headless Chrome
,简单说我们也可以在不打开chrome GUI
的情况在Chrome
下执行我们的Selenium
脚本,可提升脚本的执行效率。
3、
Headless Chrome
对Chrome
版本要求 官方文档中介绍,mac
和linux
环境要求chrome
版本是59+
,而windows
版本的chrome
要求是60+4、更多可以参考
四、在selenium
中集成Headless CHrome
- 1、确保前面
selenium
可以打开谷歌浏览器访问网站 2、实现代码
from selenium import webdriver option = webdriver.ChromeOptions() option.add_argument('headless') browser = webdriver.Chrome(chrome_options=option) browser.get('http://www.httpbin.org/ip') print(browser.page_source)