phantomjs 开发爬虫框架

函数
  • page.childframescount
  • page.childframesname
  • page.close
  • page.currentframename
  • page.deletelater
  • page.destroyed
  • page.evaluate
  • page.initialized
  • page.injectjs
  • page.javascriptalertsent
  • page.javascriptconsolemessagesent
  • page.loadfinished
  • page.loadstarted
  • page.openurl
  • page.release
  • page.render
  • page.resourceerror
  • page.resourcereceived
  • page.resourcerequested
  • page.uploadfile
  • page.sendevent
  • page.setcontent
  • page.switchtochildframe
  • page.switchtomainframe
  • page.switchtoparentframe
  • page.addcookie
  • page.deletecookie
  • page.clearcookies
回调处理程序/

列表中的所有页面的事件:

  • oninitialized
  • onloadstarted
  • onloadfinished
  • onurlchanged
  • onnavigationrequested
  • onrepaintrequested
  • onresourcerequested
  • onresourcereceived
  • onresourceerror
  • onresourcetimeout
  • onalert
  • onconsolemessage
  • onclosing
page.onInitialized = function() {
 console.log("page.onInitialized");
 printArgs.apply(this, arguments);
 };
 page.onLoadStarted = function() {
 console.log("page.onLoadStarted");
 printArgs.apply(this, arguments);
 };
 page.onLoadFinished = function() {
 console.log("page.onLoadFinished");
 printArgs.apply(this, arguments);
 };
 page.onUrlChanged = function() {
 console.log("page.onUrlChanged");
 printArgs.apply(this, arguments);
 };
 page.onNavigationRequested = function() {
 console.log("page.onNavigationRequested");
 printArgs.apply(this, arguments);
 };
 page.onRepaintRequested = function() {
 console.log("page.onRepaintRequested");
 printArgs.apply(this, arguments);
 };
  
 if (logResources === true) {
 page.onResourceRequested = function() {
 console.log("page.onResourceRequested");
 printArgs.apply(this, arguments);
 };
 page.onResourceReceived = function() {
 console.log("page.onResourceReceived");
 printArgs.apply(this, arguments);
 };
 }
  
 page.onClosing = function() {
 console.log("page.onClosing");
 printArgs.apply(this, arguments);
 };
  
 // window.console.log(msg);
 page.onConsoleMessage = function() {
 console.log("page.onConsoleMessage");
 printArgs.apply(this, arguments);
 };
  
 // window.alert(msg);
 page.onAlert = function() {
 console.log("page.onAlert");
 printArgs.apply(this, arguments);
 };
 // var confirmed = window.confirm(msg);
 page.onConfirm = function() {
 console.log("page.onConfirm");
 printArgs.apply(this, arguments);
 };
 // var user_value = window.prompt(msg, default_value);
 page.onPrompt = function() {
 console.log("page.onPrompt");
 printArgs.apply(this, arguments);
 };
  
 
  
 setTimeout(function() {
 console.log("");
 console.log("### STEP 1: Load '" + step1url + "'");
 page.open(step1url);
 }, 0);
  
 setTimeout(function() {
 console.log("");
 console.log("### STEP 2: Load '" + step2url + "' (load same URL plus FRAGMENT)");
 page.open(step2url);
 }, 5000);
  
 setTimeout(function() {
 console.log("");
 console.log("### STEP 3: Click on page internal link (aka FRAGMENT)");
 page.evaluate(function() {
 var ev = document.createEvent("MouseEvents");
 ev.initEvent("click", true, true);
 document.querySelector("a[href='#Event_object']").dispatchEvent(ev);
 });
 }, 10000);
  
 setTimeout(function() {
 console.log("");
 console.log("### STEP 4: Click on page external link");
 page.evaluate(function() {
 var ev = document.createEvent("MouseEvents");
 ev.initEvent("click", true, true);
 document.querySelector("a[title='JavaScript']").dispatchEvent(ev);
 });
 }, 15000);
  
 setTimeout(function() {
 console.log("");
 console.log("### STEP 5: Close page and shutdown (with a delay)");
 page.close();
 setTimeout(function(){
 phantom.exit();
 }, 100);
 }, 20000);

网络监控

var page = require('webpage').create();
page.onResourceRequested = function(request) {
  console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function(response) {
  console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);

 

转载于:https://www.cnblogs.com/menu/p/6848629.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值