phantomjs 抓天下三藏宝阁数据

phantomjs 抓天下三藏宝阁数据var page require webpage create page viewportSize width 1200 height 1500 page settings userAgent Mozilla 5 0 X11 Ubuntu Linux i686 rv 48 0

大家好,我是讯享网,很高兴认识大家。
var page = require('webpage').create(); page.viewportSize = {width: 1200,height: 1500}; page.settings.userAgent='Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:48.0) Gecko/ Firefox/48.0'; var webSite='https://tx3.cbg.163.com/cgi-bin/equipquery.py?act=show_overall_search'; /* 加载外部js,不过好像加载了就会和网页里的有冲突 page.includeJs( 'https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js', function() { waitFor(function() { return page.evaluate(function() { return $("#pager").children('a').length>3; }); }, function() { console.log("content has been load"); page.render("output.png"); phantom.exit(); },10000); } ); */ //死等,会把资源抢尽,不建议 function sleep(n) { 
    var start = new Date().getTime(); while (true) { if (new Date().getTime() - start > n) { break; } } } //等待某个目标达成后去执行某个程序 "use strict"; function waitFor(testFx, onReady, timeOutMillis) { 
    var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 3000, //< Default Max Timout is 3s start = new Date().getTime(), condition = false, interval = setInterval(function() { 
    if ( (new Date().getTime() - start < maxtimeOutMillis) && !condition ) { // If not time-out yet and condition not yet fulfilled condition = (typeof(testFx) === "string" ? eval(testFx) : testFx()); //< defensive code } else { if(!condition) { // If condition still not fulfilled (timeout but condition is 'false') console.log("'waitFor()' timeout"); page.render("timeout.png"); phantom.exit(1); } else { // Condition fulfilled (timeout and/or condition is 'true') console.log("'waitFor()' finished in " + (new Date().getTime() - start) + "ms."); typeof(onReady) === "string" ? eval(onReady) : onReady(); //< Do what it's supposed to do once the condition is fulfilled clearInterval(interval); //< Stop this interval } } }, 500); //< repeat check every 250ms }; function isCbgLoadSuss(){ 
    return page.evaluate(function() { 
    return document.getElementById("pager").childElementCount>1; }); } function makeAScreen(name){ 
    console.log("make a screenShot "+ name); page.render(name+".png"); } function changeAttr(type,attr) { 
    page.evaluate(function(type,attr){ 
    switch(type) { case 1: document.getElementsByName("equ_xiuwei_min")[0].value=attr; break; case 2: document.getElementsByName("equ_xiuwei_max")[0].value=attr; break; } },type,attr); } page.onLoadFinished = function(status){ 
    var script1="function(){search();}"; var script2="function(){search_role_price_down();}"; var script3="function(){search_role_price_up();}"; console.log("onLoadFinished"); changeAttr(1,85000); page.evaluateJavaScript(script1); waitFor(function(){ 
   return isCbgLoadSuss()}, function() { 
    makeAScreen("item_show"); page.evaluateJavaScript(script3); waitFor(function(){ 
    return isCbgLoadSuss(); },function(){ 
    makeAScreen("price_up"); phantom.exit(); },10000); },10000); }; page.open(webSite, function(status){ 
    console.log("Status:connect "+status); if(status == "success"){ // } }); 

讯享网
小讯
上一篇 2025-02-28 10:09
下一篇 2025-02-18 20:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/121487.html