如何以编程方式访问Google搜索右侧的数据?

5

有没有一种可以通过程序访问Google搜索结果右侧数据的方法?

是否存在类似的服务?特别是针对位置数据的服务。

访问=不使用html抓取

这是一个例子:enter image description here

3个回答

5

2018年更新 - 知识面板

当人们在谷歌上搜索企业时,他们可能会看到一个出现在搜索结果右侧的框中的有关该企业的信息。该框中的信息称为知识面板,可帮助客户发现和联系您的企业。

知识面板示例

知识面板由知识图谱中的信息驱动。


Google的知识图谱

你提出的问题中的例子来自Google的知识图谱

开放知识图谱的短暂生命周期给出了一个很好的解释,为什么Google的知识图谱数据不是公开可用的,以及为什么该项目正在关闭。

[Jack Menzel,Google的产品管理总监] 解释说,有几个具体原因导致Google无法“参与”开放知识图谱项目。首先,Google知识图谱中的一些数据来自于从未授权谷歌重新分发它们的来源获取的封闭数据集。其他一些数据集具有更开放的许可证,但仍具有共享或归属限制。其次,他提醒说-原则上-Google阻止任何形式的自动提取,允许收集有关其搜索和排名技术的信息,因为“它们是Google提供的专有核心”。

替代方案

我尝试按照您的位置数据偏好顺序进行列出。


尽管这是旧的回复,但现在已经是2018年了,_知识面板_仍在运行。 - CodeFinity

1
如果您有预算,可以考虑使用serpapi.com,这是一个提供Google搜索API的服务商,可以实时执行Google搜索并将结果以JSON格式返回。
通过API对关键词“咖啡”进行示例搜索将返回完整的SERP参数和搜索结果的元数据。示例搜索的部分“知识面板”元数据如下所示:
"knowledge_graph": {
    "title": "Coffee",
    "image": "data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",
    "description": "Coffee is a brewed drink prepared from roasted coffee beans, the seeds of berries from certain Coffea species. The genus Coffea is native to tropical Africa and Madagascar, the Comoros, Mauritius, and Réunion in the Indian Ocean.",
    "source": {
      "name": "Wikipedia",
      "link": "https://en.wikipedia.org/wiki/Coffee"
    },
    "countries_of_origin": "Yemen (drink), Ethiopia (plant)",
    "coffee_companies": [
      {
        "name": "Starbucks",
        "link": "https://www.google.com/search?hl=en&gl=us&q=Starbucks&stick=H4sIAAAAAAAAAONgFuLUz9U3MCorTMtVAjMNLZLji7REspOt9JPzc3Pz86xS8svzyhOLUopXMQoDxXJyUpNLMvPz9DOLi0tTi4oXsXIGlyQWJZUmZxcDANn7PURQAAAA&sa=X&ved=2ahUKEwjPi5uzxvDhAhXHu54KHXouArgQxA0wJnoECBIQBQ",
        "source": "common"....

Comparison between the search result and the JSON result


1
你可以使用Google知识图谱API来实现这个功能。
  • create an application in google developers console
  • create authentication credentials

     knowlegdegraph<-function(query)
    {
       API_Key<-"YOUR_API_KEY"
       url<-paste("https://kgsearch.googleapis.com/v1/entities:search?query=",query, 
         "&key=", API_Key,
         "&limit=1&indent=True")
      jdata <- fromJSON(URLencode(url))
    
    } 
    

    Jdata is a list. you can extract the JSON element for location from it


3
知识API返回的结果与我从谷歌搜索结果获得的知识面板不同。有没有办法从知识API获取相同的知识面板详细信息? - Deepak K M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接