我用python实现了一个程序,它执行Google搜索并从搜索结果中捕获前十个链接。我正在使用“pygoogle”库进行搜索,当我实现我的程序的前两三次时,它得到了适当的点击,整个项目运行得非常好。但是之后,在某些链接被下载之后,它会给出如下错误。(图形用户界面_二.py是我的程序名)
Tkinter回调中出现异常
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "gui_two.py", line 113, in action
result = uc.utilcorpus(self.fn1,"")
File "/home/ci/Desktop/work/corpus/corpus.py", line 125, in utilcorpus
for url in g1.get_urls(): #this is key sentence based search loop
File "/home/ci/Desktop/work/corpus/pygoogle.py", line 132, in get_urls
for result in data['responseData']['results']:
TypeError: 'NoneType' object has no attribute '__getitem__'
我知道这是python中最常见的错误,但我无能为力,因为它是一个库。我想知道我的程序是垃圾邮件谷歌或我需要自定义谷歌搜索API的或可能是其他原因。请给我准确的信息执行搜索没有任何问题。我将非常感激你的帮助。在
谢谢。在
编辑:实际上我的代码非常庞大,这里有一小段代码,在那里出现问题。在
^{pr2}$若我们简单地将它复制到一个简单的.py文件中,它可能会工作,但若我们多次执行它,程序会给出一个错误。在
我通过修改pygoogle.py图书馆程序。此代码中的错误是,在代码中不检查元素是否有数据。修改后的代码为:
def get_url(self):
这是来自pygoogle.py(来自http://pygoogle.googlecode.com/svn/trunk/pygoogle.py)
与其他使用
data['responseData']['results']
的地方不同,它们并不是都使用has_key()
来检查它们是否存在。在我怀疑您的
responseData
丢失了results
,因此for循环失败。在既然有了源代码,就可以自己编辑它。在
另外,为项目制作一个问题-实际上非常类似于this一个。在
相关问题 更多 >
编程相关推荐