python selenium 无头浏览器,
Python Foundation 6在爬虫中使用了无头浏览器Phantomjs一、简介1。内置对象:2。Python的爬虫方案,javascript通常有几种解决方案。3.几种无界面浏览器的描述。2.Windows环境的安装。2.Ubuntu环境的安装方法。1.Ubuntu环境的安装方法。2.4.安装CentOS环境。3.例如,启动js脚本1。获取脚本参数2。截屏3。运行js计算第4页的运行时间。拿题目5。获取元素并修改UserAgent 6。注入js 4。Python硒幻想曲1。输出标题2。将内容输出到文件3。截屏4。选择器5。切全屏。
1.介绍一个基于webkit内核的无头浏览器。本章主要使用PhantomJS来处理网页中的JS。
1.内置对象:var system=require( system );//获取系统操作对象,包括命令行参数,phantomjs系统设置等信息。
var page=require(网页);//获取操作dom或者web页面的对象,通过它可以打开web页面,接收web页面内容,请求和响应参数,这是核心对象。
var fs=require( fs );//获取文件系统对象,通过它可以操作操作系统的文件操作,包括读、写、移动、复制、删除等。
2.在Python的爬虫方案中,javascript通常有几种解决方案。写代码模拟js逻辑,调用界面浏览器。比如selenium用的是无界面浏览器,比如Casper js,Phantom js基于JS引擎实现了自己的轻量级浏览器。pyv8的例子中有一个简单的基于v8的浏览器模型。
3.几款无UI浏览器描述casperjs,phantomjs:非python,可以通过命令行调用。Phantomjs还有一个webdriver协议的非官方实现,可以通过selenium tuning phantomjs实现无接口。Ghost,spynner等。py定制的webkit。
1.windows环境安装下载地址:
http://phantomjs.org/
下载后解压放在Python目录下。
2.ubuntu环境安装方法1注意不要使用sudo apt-get install phantomjs
下载地址:http://phantomjs.org/download.html
sudo apt-get安装节点js-传统
sudo apt-get安装npm
sudo倾向于清除幻象
NPM install-g-registry https://registry.npm.taobao.org幻影
3.Ubuntu环境2 tar-xvf phantom JS-2 . 1 . 1-Linux-x86 _ 64 . tar . bz2的安装方法
将程序移动到适当的位置
sudo mv phantomjs-2 . 1 . 1-Linux-x86 _ 64/usr/local/src/phantomjs
-创建到环境变量的软链接。您可以在shell中直接使用phantomjs命令。
sudo ln-SF/usr/local/src/phantomjs/bin/phantomjs/usr/local/bin/phantomjs
-检查它是否正常工作。
浏览器
4.CentOS环境安装和下载
wget https://bit bucket . org/ariya/phantomjs/downloads/phantomjs-2 . 1 . 1-Linux-x86 _ 64 . tar . bz2
tar-xjvf phantomjs-2 . 1 . 1-Linux-x86 _ 64 . tar . bz2
chmod x/PATH/phantomjs-2 . 1 . 1/bin/phantomjs
sudo ln-s ~/PATH/phantomjs-2 . 1 . 1/bin/phantomjs/usr/local/bin/phantomjs
yum安装fontconfig freetype2
幻影五型
三。例如,启动js脚本将代码保存为. js文件,然后使用以下命令运行它:
phantomjs.exe一号
1.获取脚本参数var system=require( system );
if (system.args.length===1) {
console.log(调用该脚本时尝试传递一些参数!);
}否则{
system . args . foreach(function(arg,i) {
console . log(I : arg);
});
}
幻影. exit();输出结果:
2.屏幕截图var page=require(网页)。create();
page.open(http://www.baidu.com ,function () {
page . render( example . png );
幻影. exit();
});
3.运行js计算页面运行时间var page=require(网页)。create(),
system=require(“系统”),
t,地址;
phantom.outputEncoding= gbk//根据实际编码格式填写
if (system.args.length===1) {
console.log(用法:loadspeed.js一些URL
幻影.出口(1);
}否则{
t=date . now();
address=system . args[1];
page.open(地址、功能(状态){
如果(状态!==成功){
console.log(无法加载地址);
}否则{
t=日期。now()-t;
console.log(页面标题为page.eval(function () {
返回文档标题;
}));
console.log(加载时间t毫秒);
}
幻影。exit();
});
}运行:
4.取标题var page=require(网页)。create();
page.open(http://www .***.净,功能(状态){
var title=page.eval(function() {
返回文档标题;
});
phantom.outputEncoding= gbk
console.log(页面标题是标题);
幻影。exit();
});
5.取元素,修改UserAgentvar page=require(网页)。create();
console.log(默认用户代理为页面。设置。用户代理’);
页面。设置。用户代理=特别代理;
页面。打开( http://www。httpuseragent。组织,函数(状态){
如果(状态!==成功){
console.log(无法访问网络);
}否则{
var ua=page.eval(function () {
返回文档。getelementbyid(“我的代理”).内部文本
});
控制台。log(ua);
}
幻影。exit();
});
6.注入jsvar page=require(网页)。create();
page.open(http://www.sample.com ,function() {
页面。包括js( http://Ajax。谷歌API。com/Ajax/libs/jquery/1。6 .1/jquery。量滴js ,function() {
page.eval(function() {
$(button ).单击();
});
phantom.exit()
});
});
四、Python硒幻想曲下面计算机编程语言与幻象结合使用。
1.输出标题#!/usr/bin/python
从硒导入网驱动程序
driver=webdriver .phantom js(executable _ path= phantom js。exe’)
driver.get(http://www.baidu.com )
数据=驱动程序。标题
打印(数据)
2.输出内容到文件#!/usr/bin/python
从硒导入网驱动程序
driver=webdriver .phantom js(executable _ path= phantom js。exe’)
司机。得到( http://项。JD。com/2914823。html’)
打印(driver.page_source)
fo=open(aaaa1.txt , wb )
fo。写(驱动。page _ source。encode())
fo.close()
driver.quit()
3.截屏#!/usr/bin/python
#编码=utf-8
从硒导入网驱动程序
driver=webdriver .phantom js(executable _ path= phantom js。exe’)
driver.get(http://www .***.net’)
数据=驱动程序。标题
driver.save _截图( c*** .png’)
打印(数据)
4.选择器#!/usr/bin/python
#编码=utf-8
从硒导入网驱动程序
driver=webdriver .phantom js(executable _ path= phantom js。exe’)
#可执行文件路径为你的浏览器可执行文件路径
司机。获取( http://新闻。搜狐。com/scroll/)
#或得射流研究…变量的值
r=驾驶员。execute _ script(返回新闻Jason )
打印(r)
#硒在自动化测试的数字正射影像图中使用选择器来查找元素,包含id,类名,css选择器,链接文本,名称,标签名,标签名,xpath等等
打印(驱动程序。find _ element _ by _ tag _ name( div ).正文)
打印(驱动程序。find _ element _ by _ CSS _ selector(" # content ").正文)
打印(驱动程序。按id查找元素(内容).正文)
5.截全屏#!/usr/bin/python
#编码=utf-8
导入时间
从硒导入网驱动程序
从硒。网络驱动。常见。期望的_功能导入所需功能
定义特征(网址):
dcap=dict(DesiredCapabilities .幻象)
幻想。页面。设置。用户代理]=(
Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/45。0 .2454 .101 Safari/537.36
)
driver=webdriver .PhantomJS(desired _ capabilities=dcap)
driver.get(url)
js=文档。身体。滚动顶部=100
身高=司机。execute _ script(返回文档。身体。滚动高度’);
count=int(高度/100)
打印(高度为%d,滚动%d次%(高度,计数))
打印("结果全球资源定位器(Uniform Resource Locator)是:% s"%驱动程序。当前网址”)
对于范围内的我(0,计数):
打印(滚动索引:% d“% I”)
司机。隐式等待(30)
时间。睡眠(1)
驱动程序执行脚本(js)
html=driver.page_source
driver.save_screenshot(1.png )
driver.quit()
返回超文本标记语言
url=http://www.sohu.com.cn/
文本=图形(网址)发现的问题:网页会遗失一些图片不显示,可能图片是异步加载的;在CentOS下运行时,缺失更严重。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。