Coud不能在PhantomJS中启用JavaScript

时间:2015-09-06 14:59:02

标签: javascript redirect 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>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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