微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Node.Js中的请求刮取javascript生成的内容

我需要从仅在浏览器中显示的Google搜索结果中抓取一些内容(我怀疑它是在启用Javascript时) – 具体来说,他们的知识图“人们也搜索内容.

我使用了请求和cheerio的组合来抓取并且已经设法强制加载来自.com域的结果,但是,知识库框没有显示在我的结果体中,可能是因为它是javascript生成内容.

有人知道我可以添加的设置还是我可以使用的其他库?

这是我下面的代码.谢谢!

var request = require('request');
var cheerio = require("cheerio");

request = request.defaults({jar: true});

var options = {
    url: 'http://www.google.com/ncr',
    headers: {
        'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16'
    }
};

request(options, function () {

    request('https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google', function (error, response, body) {

        var $= cheerio.load(body);

        $("li").each(function() {
            var link = $(this);
            var text = link.text();

            console.log(text);
        });
    });
});

解决方法:

您不能使用节点的请求,因为您只是下载静态内容.为了呈现JavaScript,您必须使用浏览器.幸运的是,有无头浏览器只是为了这个目的.我建议PhantomJS.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐