繁体   English   中英

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

[英]Scraping javascript generated content using request in Node.Js

我需要从谷歌搜索结果中抓取一些只在浏览器中显示的内容(我怀疑是在启用 Javascript 时)——特别是他们的知识图“人们也在搜索”内容。

我使用requestcheerio的组合来抓取,并且已经设法从.com域强制加载结果,但是,知识库框没有出现在我的结果body中,可能是因为它是 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM