Ответ 1
Насколько я могу судить, пока еще нет API, и не существует рабочей реализации метода для извлечения данных из Google Insights. Тем не менее, я нашел решение моей (немного более конкретной) проблемы, которая действительно может быть решена, зная, сколько раз выполняются определенные термины.
Это можно сделать, связавшись с протоколом Google Suggest для баров поиска веб-браузеров. Когда вы даете ему слово, он возвращает список предложенных фраз, а также количество раз, когда каждая фаза была обыскана (я не уверен в отношении единицы времени, предположительно в прошлом году).
Вот какой код для 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])
Это, по крайней мере, частично решает проблему, но, к сожалению, по-прежнему трудно надежно получить количество поисков какого-либо конкретного слова или фразы и невозможно получить историю поиска разных фраз.