我的代码是......
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>
我该如何解决这个问题?
答案 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();
};
});