0

ブラウザにのみ表示される Google 検索結果から一部のコンテンツをスクレイピングする必要があります (Javascript が有効になっていると思われます)。具体的には、ナレッジ グラフの「人々も検索する」コンテンツです。

と の組み合わせを使用しrequestcheerioスクレイプし、ドメインから結果を強制的に読み込むことができましたが、おそらく JavaScript によって生成されたコンテンツであるため.com、ナレッジベース ボックスが結果に表示されません。body

追加できる設定や使用できる別のライブラリがあるかどうかは誰にもわかりませんか?

以下は私のコードです。ありがとうございました!

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);
        });
    });
});
4

1 に答える 1

2

静的コンテンツをダウンロードしているだけなので、ノードのリクエストを使用することはできません。JavaScript をレンダリングするには、ブラウザを使用する必要があります。幸いなことに、この目的のためだけのヘッドレス ブラウザがあります。PhantomJSをお勧めします。

于 2015-01-02T02:46:49.303 に答える