Coudn't中启用JavaScript PhantomJS

Coudn't中启用JavaScript PhantomJS

问题描述:

我的代码...Coudn't中启用JavaScript PhantomJS

var webPage = require('webpage'); 
var page = webPage.create(); 
page.open("http://www.mangaumaru.com/archives/503925", function(status) { 
    console.log(page.content); 
    phantom.exit(); 
}); 

和 “C:\> phantomjs main.js” 的结果是这样的:

<html><head><title>You are being redirected...</title> 
<noscript>Javascript is required. Please enable javascript 
before you are allowed to see this page.</noscript> 

我怎样才能解决这个问题问题?

PhantomJS默认启用JavaScript。无论JavaScript是否启用,<noscript>元素始终是源代码的一部分。当JavaScript被禁用时,元素不会被渲染。打印源文件不会告诉你很多。您需要渲染截图,例如page.render("screenshot.png")以查看noscript元素是否可见。

当这样的JavaScript重定向完成后,通常会在一段时间后触发。您需要确定是什么时候为您的网页,但(直到下一个页面加载),您将解决例如或者通过等待一点点:

page.open("http://www.mangaumaru.com/archives/503925", function(status) { 
    setTimeout(function(){ 
     console.log(page.content); 
     phantom.exit(); 
    }, 10000); 
}); 

,或者你可以做注册页面加载事件以便您看到第二页已加载:

page.open("http://www.mangaumaru.com/archives/503925", function(status) { 
    page.onLoadFinished = function(status){ 
     console.log(page.content); // actual page 
     phantom.exit(); 
    }; 
});