python selenium 无头浏览器,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: