有谷歌洞察API吗?

12

我一直在寻找一个API来自动获取Google Insights信息,以用于另一个算法中的某部分,但一直没有找到合适的。在Google上第一个结果是一个带有Python插件的网站,但该插件已经过时了。

请问是否存在这样的API,或者是否有人编写了插件,也许是针对Python的?

4个回答

7
据我所知,目前尚无可用的API,也没有从Google Insights中提取数据的工作方法。然而,我已经找到了解决我的(稍微更具体的)问题的方法,只需知道某些术语被搜索的次数即可解决。
这可以通过与Web浏览器搜索栏的Google建议协议进行接口交互来完成。当您输入一个单词时,它会返回一组建议短语以及每个短语已被搜索的次数(我不确定时间单位,可能是在过去的一年中)。
以下是一些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])

这至少在一定程度上解决了问题,但不幸的是,要可靠地获取任何特定单词或短语的搜索次数仍然很困难,并且无法获取不同短语的搜索历史记录。

1
看起来他们已经取消了int属性。如果我访问"http://google.com/complete/search?output=toolbar&q=hello%20world",现在只有data属性。 - Jay S.
我在想目前(2014年)是否仍然没有相关的官方API可用。搜索了一段时间,但还没有找到任何东西。 - Paul Lo

2

我刚开始搜索并找到了一个使用Python检索的好方法,可以在以下脚本中找到。基本上,它是将特定引用传递给Google历史金融数据库。

def get_index(gindex, startdate=20040101):
    """
    API wrapper for Google Domestic Trends data.
        https://www.google.com/finance/domestic_trends

    Available Indices:

       'ADVERT', 'AIRTVL', 'AUTOBY', 'AUTOFI', 'AUTO', 'BIZIND', 'BNKRPT',
       'COMLND', 'COMPUT', 'CONSTR', 'CRCARD', 'DURBLE', 'EDUCAT', 'INVEST',
       'FINPLN', 'FURNTR', 'INSUR', 'JOBS', 'LUXURY', 'MOBILE', 'MTGE',
       'RLEST', 'RENTAL', 'SHOP', 'TRAVEL', 'UNEMPL'

    """
    base_url = 'http://www.google.com/finance/historical?q=GOOGLEINDEX_US:'
    full_url = '%s%s&output=csv&startdate=%s' % (base_url, gindex, startdate)
    dframe = read_csv(urlopen(full_url), index_col=0)
    dframe.index = DatetimeIndex(dframe.index)
    dframe = dframe.sort_index(0)
    for col in dframe.columns:
        if len(dframe[col].unique()) == 1:
            dframe.pop(col)
    if len(dframe.columns) == 1 and dframe.columns[0] == 'Close':
        dframe.columns = [gindex]
    return dframe[gindex] 

0

我找不到谷歌提供的任何文档,但Brad Jasper似乎已经想出了一些查询Insights信息的方法。注意:我不确定它是否仍然有效...祝你好运!

使用Python访问Google Insights API


是的,那就是我在问题中提到的那个。不幸的是,它现在不再起作用了。 - Herman Schaaf

0

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