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();
};
});