【问题标题】:How to get Google's Knowledge Graph "people also search for" content?如何获取 Google 的知识图谱“人们也在搜索”的内容?
【发布时间】:2015-02-28 11:21:51
【问题描述】:

我正在尝试在搜索结果页面上获取 Google 的“人们也搜索”内容,并且我正在使用 PhantomJS 来抓取他们的结果。但是,我需要的知识库部分没有出现在我得到的body 中。有谁知道我可以做些什么来让我看到它?

代码如下:

var phantom = require('phantom');

phantom.create(function (ph) {
    ph.createPage(function (page) {
        page.open("http://www.google.com/ncr", function (status) {
            console.log("opened google NCR ", status);
            page.evaluate(function () { return document.title; }, function (result) {
                console.log('Page title is ' + result);
                page.open("https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google", function (status) {
                    console.log("opened google Search Results ", status);
                    page.evaluate(function () { return document.body; }, function (result) {
                        console.log(result);
                        ph.exit();
                    });
                });
            });
        });
    });
});

PS 我必须先请求 `google.com/ncr' 来强制加载 Google.Com 的结果,因为我在德国,而德语版本没有知识图谱。也许上面的请求也可以简化...

【问题讨论】:

    标签: javascript node.js phantomjs


    【解决方案1】:

    可能是你拿到body的时候页面的js还没有完成。尝试将此添加到您的 page.evaluate 中。

    window.setTimeout( function() { <your page logic> }, 1000);
    

    您可能需要摆弄时间。

    您还可以在打开页面后但在运行评估之前执行page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js', function(){&lt;your logic&gt;}); 来使用 jquery。

    【讨论】:

      【解决方案2】:

      找到答案 - 必须手动将 userAgent 设置为 Chrome

      修改后的代码如下:

      var phantom = require('phantom');
      
      phantom.create(function (ph) {
          ph.createPage(function (page) {
              page.set('settings.userAgent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1');
              page.open("http://www.google.com/ncr", function (status) {
                  console.log("opened google NCR ", status);
                  page.evaluate(function () { return document.title; }, function (result) {
                      console.log('Page title is ' + result);
                      page.open("https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google", function (status) {
                          console.log("opened google Search Results ", status);
                          page.evaluate(function () { return document.body; }, function (result) {
                              console.log(result);
                              ph.exit();
                          });
                      });
      
                  });
              });
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多