我使用我在这里找到的一些代码,以便谷歌搜索一组字符串并返回“预期”的结果量。这是密码:
for a in months:
for b in range(1, daysInMonth[a] + 1):
#Code
if not myString:
googleStats.append(None)
else:
try:
query = urllib.urlencode({'q': myString})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
search_response = urllib.urlopen(url)
search_results = search_response.read()
results = json.loads(search_results)
data = results['responseData']
googleStats.append(data['cursor']['estimatedResultCount'])
except TypeError:
googleStats.append(None)
for x in range(0, len(googleStats)):
if googleStats[x] != None:
finalGoogleStats.append(googleStats[x])
有两个问题,可能是相关的。当我返回len(finalGoogleStats)时,每次都不一样。一次是37岁,然后是12岁。然而,它应该更像240。在
这是我取出try时收到的TypeError/除了:
^{2}$在网上发生的
googleStats.append(data['cursor']['estimatedResultCount'])
所以,我就是不明白为什么googleStats中的none的数量每次都在变化,而且从来没有像它应该的那么低。如果有人有什么想法,我很乐意听听,谢谢!在
更新
当我试图打印出我搜索的每个think的数据时,我得到了大量的none,而实际的JSON字典却很少。我得到的字典分布在所有的搜索中,我看不到什么是“无”和“非”的模式,所以,问题似乎更多的是与GoogleAPI有关。在
答案是我曾经担心过的,但多亏了所有帮助过我的人,如果有什么有用的话,我会投票给你。在
所以,Google似乎随机地觉得我在搜索一些必须的东西。他们给我的错误是:
所以,我想他们限制了我可以用他们搜索的范围。但是,仍然奇怪的是,它并不是一直发生的,我仍然在错误的海洋中偶尔成功地进行搜索。这仍然是个谜。。。在
默认情况下,googleapi传递的结果最少。如果要增加显示结果,请在url中添加另一个参数“rsz=8”(默认情况下rsz=1因此结果较小)。在
所以你的新网址变成:
url='http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=8&%s%查询
请参阅此处的详细文档:https://developers.google.com/web-search/docs/reference#_class_GSearch
首先,我想说删除您的
try..except
子句,看看问题到底出在哪里。然后,作为一个一般的良好实践,当您尝试访问字典元素的层时,使用.get()
方法来更好地控制。在作为对你可能的
TypeError
的证明,以下是我有根据的猜测:有几种方法可以使用
^{pr2}$.get()
,用于简单的演示:相关问题 更多 >
编程相关推荐