javascript - 无法通过 PhantomJs 抓取 url

标签 javascript web-scraping phantomjs headless-browser

我有一个页面,可能以某种方式受到保护,不会被 headless 浏览器抓取,但当然,我不确定。问题是,在浏览器中它加载良好,JavaScript 执行并且一切都很好。当使用 phanthomjs 时,它不会,似乎 JavaScript 不执行或发生其他问题。

我怎样才能找到它?您建议如何抓取该页面?

最佳答案

这是一个基本的 phantomjs 脚本,如果对指定 URL 的请求成功与否,该脚本将打印到控制台。这应该可以帮助您查看是否可以访问该页面。如果你取得了成功,你应该能够抓取。这会让我认为是你的 JS 导致了问题,而不是 headless 浏览器。如果打印“不成功”,您可以设置 userAgent 设置,使其看起来像一个真正的浏览器。

var page = new WebPage();
// Uncomment the next line to set the user agent.
//page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.open('http://www.google.ca', function (status) {
    if (status !== 'success') {
        console.log('Unsuccessful');
    } else {
        console.log('Successful')
    }
    phantom.exit();
});

http://www.google.ca 更改为您想要的网址。

关于javascript - 无法通过 PhantomJs 抓取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40224280/

相关文章:

javascript - 我无法在 ReactJS 中正确使用 history.push()

python - 如何访问亚马逊类别列表的第 101 页

java - 如何在网络收获中从字符串中减去子字符串

python - 抓取包含::之前的网页

javascript - 禁用/忽略用于转译 javascript 文件的 Babel 严格模式

JavaScript while循环计算

javascript - 网络包 4 : glob entry with dynamic output filename

javascript - 如何配置 Angular2 Quickstart 来运行 phantomjs?

java - 在 Serenity 上设置 PhantomJS webDriver

java - 在 Selenium Grid 中注册 PhantomJS 节点时出错