python - 是否有 Google Insights API?

标签 python api

<分区>

我一直在寻找一种 API 来自动检索 Google Insights 信息以获取另一种算法的一部分,但一直找不到任何东西。 Google 上的第一个结果提供了一个带有 python 插件的网站,该插件现已过时。

是否存在这样的 API,或者是否有人为 python 编写了插件?

最佳答案

据我所知,目前还没有可用的 API,也没有从 Google Insights 中提取数据的方法的有效实现。但是,我已经找到了解决我的(稍微更具体的)问题的方法,实际上只要知道某些术语被搜索了多少次就可以解决这个问题。

这可以通过与网络浏览器搜索栏的 Google Suggest 协议(protocol)接口(interface)来完成。当你给它一个词时,它会返回一个建议短语列表以及每个阶段被搜索的次数(我不确定时间单位,大概是去年)。

这是执行此操作的一些 Python 代码,由 odewahn1 在 O'reilly Answers 的代码稍作改编。并在 Python 2.6 及更低版本上工作:

from sgmllib import SGMLParser
import urllib2
import urllib

# Define the class that will parse the suggestion XML
class PullSuggestions(SGMLParser):

   def reset(self):
      SGMLParser.reset(self)
      self.suggestions = []
      self.queries = []

   def start_suggestion(self, attrs):
      for a in attrs:
         if a[0] == 'data': self.suggestions.append(a[1])

   def start_num_queries(self, attrs):
      for a in attrs:
         if a[0] == 'int': self.queries.append(a[1])

# ENTER THE BASE QUERY HERE

base_query = ""  #This is the base query

base_query += "%s"
alphabet = "abcdefghijklmnopqrstuvwxyz"
for letter in alphabet:
   q = base_query % letter;
   query = urllib.urlencode({'q' : q})
   url = "http://google.com/complete/search?output=toolbar&%s" % query

   res = urllib2.urlopen(url)
   parser = PullSuggestions()
   parser.feed(res.read())
   parser.close()

   for i in range(0,len(parser.suggestions)):
      print "%s\t%s" % (parser.suggestions[i], parser.queries[i])

这至少部分解决了问题,但不幸的是,仍然很难可靠地获取任何特定单词或短语的搜索次数,也无法获取不同短语的搜索历史。

关于python - 是否有 Google Insights API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440139/

相关文章:

javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie ,有什么区别?

api - 最大化付款转换的最小字段?

python - 在 Python Sphinx 中使用自动模块不显示变量和类属性

python - 将 hexdump(packet) 保存到 scapy 中列出

python - 不明白 Tweepy 错误

ios - iOS 中的 PayWay API 集成程序?

api - NestJS API 接受请求正文中的一种或其他类型

python - AWS Lambda-API 网关 "message": "Internal server error" (502 Bad Gateway)

python - 在将值分配给神经网络之前将 TensorFlow 张量转换为 numpy

python - for 循环中嵌入的 SELECT 查询与 WHERE id IN 语法之间的区别