2010-12-14 16 views
12

Google Insightsの情報を別のアルゴリズムの一部として自動的に取得するAPIを探していましたが、何も見つかりませんでした。 Googleの最初の結果は、現在Pythonプラグインがインストールされているサイトを提供しています。Google Insights APIはありますか?

このようなAPIは存在するのですか、誰かがPython用のプラグインを作成しているのでしょうか?

答えて

7

は、私の知る限り、まだのように利用可能なAPIが存在しない、とどちらもそこには、Google Insightsのからデータを抽出する方法の作業を実装したものです。しかし、私は特定の用語が何回検索されたかを知ることで本当に解決できる、私の(少し具体的な)問題の解決策を見出しました。

これは、ウェブブラウザ検索バーのGoogle Suggestプロトコルとのインタフェースで行うことができます。あなたがそれを語ると、提案されたフレーズのリストと各フェーズが検索された回数が返されます(おそらく昨年の時間単位についてはわかりません)。ここで

はわずかO'reilly Answersでodewahn1によってコードから適応とPython 2.6と下位に取り組んで、これを行うためのいくつかのPythonコードです:

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」に移動した場合は、データ属性のみが取得されます。 –

+0

現在、関連する公式APIがまだ存在しないかどうかは疑問でした(2014年)。しばらく検索したが、まだ何も見つかりませんでした。 –

0

Googleが提供するドキュメントは見つかりませんでしたが、Brad Jasper氏は、Insightsに情報を問い合わせるためのいくつかの方法を考え出しています。注:それはまだ動作するかどうかわからない...幸運!

Use Python to Access Google Insights API

+0

はい、これは私の質問で言及したものです。残念ながら、もう動作しません。 –

2

私はちょうどそれを探し始め、過去の財務データベースをGoogleに次script .Basicallyそれが通過している専門的な引用符でのpythonを使用してそれを取得するための良い方法を見つけました。

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] 
関連する問題