Coudn't enable JavaScript in 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>

我该如何解决这个问题?

JavaScript在PhantomJS中是默认启用的。无论是否启用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();
    };
});

最新更新