javascript - 无法在 PhantomJS 中启用 JavaScript

标签 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>

如何解决这个问题?

最佳答案

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/

相关文章:

javascript - 无法访问 HTTP 响应中的自定义 header

javascript - 如何让 jQuery DataTables 在多个 DOM 表之间切换?

WordPress 删除链接并重定向到主页

http - 将页面重定向到新的 URL 而不会丢失 SEO

php - 使用 https 将根域重定向到使用 wordpress 的子文件夹

angularjs - 使用 Travis-CI,如何测试 chrome 打包应用程序?

javascript - 如何在java中使用PhantomJSDriver获取Alert对象?

javascript - 通过删除字符串来计算数组的总和?

javascript - 如何确保事件只添加一次?

javascript - docker-compose 仅​​运行我的 mongodb 服务器但不运行我的 js 文件