2010-12-14 13 views
12

मैं किसी अन्य एल्गोरिदम के भाग के लिए स्वचालित रूप से Google अंतर्दृष्टि जानकारी पुनर्प्राप्त करने के लिए एक एपीआई ढूंढ रहा हूं, लेकिन कुछ भी ढूंढने में असमर्थ रहा हूं। Google पर पहला परिणाम एक पाइथन प्लगइन वाली साइट प्रदान करता है जो अब पुराना है।क्या कोई Google अंतर्दृष्टि API है?

क्या ऐसा एपीआई मौजूद है, या किसी ने प्लगइन लिखा है, शायद पाइथन के लिए?

उत्तर

7

जहां तक ​​मेरा बता सकते हैं, वहाँ कोई एपीआई अभी तक के रूप में उपलब्ध है, और न तो वहाँ गूगल अंतर्दृष्टि से डेटा निकालने के लिए एक विधि की एक काम कार्यान्वयन है। हालांकि, मुझे अपने (थोड़ा और विशिष्ट) समस्या का समाधान मिला है, जो वास्तव में यह जानकर हल किया जा सकता है कि कितनी बार कुछ शर्तों की खोज की जाती है।

यह वेबब्रोसर खोज बार के लिए Google Suggest प्रोटोकॉल के साथ इंटरफेसिंग करके किया जा सकता है। जब आप इसे एक शब्द देते हैं, तो यह सुझाए गए वाक्यांशों की एक सूची देता है साथ ही प्रत्येक चरण की खोज की संख्या (मुझे पिछले वर्ष में संभवतः समय इकाई के बारे में निश्चित नहीं है)।

यहाँ O'reilly Answers पर इस, थोड़ा odewahn1 द्वारा कोड से अनुकूलित कर रहे हैं और अजगर 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" मिल गया है तो इसमें अभी डेटा विशेषता है। –

+0

मैं सोच रहा था कि अभी भी कोई संबंधित आधिकारिक एपीआई उपलब्ध नहीं है (2014)। थोड़ी देर के लिए खोजा लेकिन अभी तक कुछ भी नहीं मिला। –

0

मुझे Google द्वारा प्रदान किया गया कोई भी दस्तावेज नहीं मिला, लेकिन ब्रैड जैस्पर जानकारी के लिए अंतर्दृष्टि पूछताछ के लिए कुछ विधि के साथ आया है। नोट: मुझे यकीन नहीं है कि यह अभी भी काम करता है ... शुभकामनाएँ!

Use Python to Access Google Insights API

+0

हां, यह वह होगा जिसे मैंने अपने प्रश्न में संदर्भित किया था। दुर्भाग्य से, यह अब और काम नहीं करता है। –

2

मैं सिर्फ इसके लिए खोज शुरू कर दिया है और निम्नलिखित script .Basically यह गुजर रहा है विशेष उद्धरण में अजगर का उपयोग कर ऐतिहासिक वित्तीय डेटाबेस गूगल के लिए इसे पुनः प्राप्त करने के लिए एक अच्छा रास्ता मिल गया ।

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] 
संबंधित मुद्दे