我的代码是...
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。 <noscript>
无论 JavaScript 是否启用,元素始终是源的一部分。当 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();
};
});
关于javascript - 无法在 PhantomJS 中启用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424884/