我一直在寻找一种API来自动检索另一种算法的Google Insights信息,但一直找不到任何东西.Google的第一个结果是提供了一个带有python插件的网站,现在已经过时了.
这样的API是否存在,或者是否有人编写过插件,也许是为了python?
据我所知,目前还没有可用的API,也没有一种从Google Insights中提取数据的方法的工作实现.但是,我找到了一个解决我(稍微更具体)问题的方法,这个问题可以通过知道搜索某些术语的次数来解决.
这可以通过与用于webbrowser搜索栏的Google Suggest协议进行交互来完成.当你给它一个单词时,它会返回一个建议短语列表以及每个阶段被搜索的次数(我不确定时间单位,大概在去年).
这是一些用于执行此操作的python代码,稍微改编自o'rewahn1在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])
Run Code Online (Sandbox Code Playgroud)
这至少部分地解决了该问题,但遗憾的是,仍然难以可靠地获得任何特定单词或短语的搜索次数并且不可能获得不同短语的搜索历史.
| 归档时间: |
|
| 查看次数: |
10656 次 |
| 最近记录: |