zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    ISO/IEC 9899:2011 条款6.6——常量表达式
    ISO/IEC 9899:2011 条款6.5.17——逗号操作符
    ISO/IEC 9899:2011 条款6.5.16——赋值操作符
    ISO/IEC 9899:2011 条款6.5.15——条件操作符
    ISO/IEC 9899:2011 条款6.5.10——按位与操作符
    ISO/IEC 9899:2011 条款6.5.9——相等操作符
    php正则表达式入门-常用语法格式
    史上最全PHP正则表达式实例汇总
    mysql数据库TINYINT取值范围详解
    Sql Server删除数据表中重复记录 三种方法
  • 原文地址:https://www.cnblogs.com/menu/p/6848629.html
Copyright © 2011-2022 走看看