phantomjs 安装,phantomjs python

  phantomjs 安装,phantomjs python

  在爬虫与自然语言处理组320349384交流的过程中,偶然接触到了phantomjs、casper等比httpclient更新的框架和集合解决方案。经过微观调查,发现该方案可行,于是尽力将其二次开发应用到百度元搜索信息采集项目中,取得了预期的效果。下一步,我会重点关注腾讯微博的收藏和手机抢票项目。接下来会一步步介绍。

  一、幻像简介

  (1)基于webkit内核的无头浏览器,即它没有UI界面,即它是一个浏览器,但它里面的点击、翻页等需要编程实现相关操作。

  (2)提供javascript API接口,即可以通过编写js程序直接与webkit内核交互。在此基础上,可以结合java语言,通过java调用js等相关操作,从而解决了以前c/c可以更好地开发基于webkit的高质量收集器的局限。

  (3)提供不同os的安装包和使用包,如windows、linux、mac等。也就是说你可以在不同的平台上重新开发采集项目或者测试自动化项目。

  二。幻像的常用API介绍

  最近几天我们找了很多资料,包括官网的,但是相关资料还是比较少的。很多问题都是通过N多次测试才搞清楚的,这里要花很多时间。学习的时候,结合官网和这篇博文会更好。

  (1)常见内置对象

  1 2 3 var system=require( system );//获取系统操作对象,包括命令行参数、phantomjs系统设置等信息var page=require(网页);//获取操作dom或者web页面的对象,通过它可以打开web页面,接收web页面内容,请求和响应参数,这是核心对象。var fs=require( fs );//获取文件系统对象,通过它可以操作操作系统的文件操作,包括读、写、移动、复制、删除等。(2)通用API

  1 3 4 5 6 7 8 9 10 11 12 page.open (url,function(status){ }//通过page对象打开url链接,可以回调其声明的回调函数。当URL完全打开时,即加载了URL引起的所有请求项时,会发生回调。然而,ajax请求与是否加载无关。page . onload started=function(){ }//调用page.open时,会先执行函数,这里可以预置一些参数或函数。要加载的资源在以下回调函数中使用,第页。onresourceerror=function(resource error){ }/page,在加载过程中有各种故障,所以页面。onresourcerequested=function(请求数据,网络中要加载的资源){}//page可以回调该函数页面中要加载的资源。onresourcereceived=function(response){ }//请求发起时的页面。在加载过程中,每个相关的资源将首先在这里响应。相当于http的header部分,它的核心回调对象是response,在这里可以得到这个请求的cookies和userAgent。页面。onconsole message=function(msg){ }//如果想在执行网页时将一些输出信息打印到控制台,可以在这个回调中显示。page . on alert=function(msg){ }//phantomjs没有接口,不能直接弹出警报,所以Phantom JS回调警报事件page.onError=function (msg,Trace) {} //当page.open中的url出现异常(不包括由其引起的其他加载资源),比如404,没有到网站的路由等。它将在此回调中显示。page . onurlchanged=function(targeturl){ }//当page.open打开的url或者打开过程中url基于URL跳转时,可以在这个函数中回调。page . onload finished=function(status){ }//真正打开page.open的目标URL时,会在调用open的回调函数之前调用,在这里可以进行内部翻页等操作page . evaluate(function(){ });//在加载的网页内部执行该功能,比如翻页、点击、滑动等。都可以执行page . render(“”);//将页面的当前状态渲染成图片,输出到指定文件。

  (3)注意事项

  1.区分phantomjs对象和打开的网页对象,如文档、窗口等。两者都有。在调用page.evaluate和不调用时,要注意区分两者的范围,这在调试时容易造成很多问题,而且很难发现。

  2.page.injectJs和page.includeJs的区别,前者侧重于本地Js文件,链接到libraryPath,后者侧重于网络Js文件,尤其是引入jquery等第三方库时。

  3.编码问题,两个重要参数,-输出编码,-脚本编码。前者是输出编码,后者是使用的js和参数配置文件的编码。为了参考方便,建议采用utf-8编码,并注明应用的目标文件的编码,以免造成不可思议的异常,无法检查。

  第三,百度元搜索采集器

  主要是java se js phantomjs的应用,

  (1)编写js脚本程序,保留所有可配置参数,提供json文件传输相关参数。

  (2)通过java程序定义相关参数并生成相应的json文件。

  (3)通过java命令行调用API,调用phantomjs命令,传入js和配置文件路径,从而启动爬虫。

  (4)首先收集关键词的搜索页面的链接集,最后遍历收集特定的对象网页。

  四。申请摘要

  上述项目经过实测应用后,应用到模拟落地,比如微博、电商,或者小米、火车票抢票等项目,都会非常方便。下一步就是把它和上面提到的项目结合起来,开发更多有趣的项目。

  原地址:3358hi.baidu.com/erliang20088/item/41919dd0820be3f43d2cb31? QQ-pf-to=pcqq . group

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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