Python 2.7 wikipedia与wikipedia 1.4.0:如何跳过坏结果?

Python 2.7 wikipedia与wikipedia 1.4.0:如何跳过坏结果?,python-2.7,list,web-scraping,wikipedia-api,Python 2.7,List,Web Scraping,Wikipedia Api,我正在为Python2.7使用wikipedia 代码如下: for node_id in top_k: human_string = label_lines[node_id] score = predictions[0][node_id] print('%s (score = %.5f)' % (human_string, score)) # Wiki = wikipedia.page(human_string) # print (Wi

我正在为Python2.7使用wikipedia

代码如下:

for node_id in top_k:
    human_string = label_lines[node_id]
    score = predictions[0][node_id]
    print('%s (score = %.5f)' % (human_string, score))       


    # Wiki = wikipedia.page(human_string)
    # print (Wiki.content)

    lista.append(human_string)

for i in xrange(5):
    wiki = wikipedia.page(lista[i])
    print (wiki.content)
    a = wiki.content
    #appendowanie = '%s (score = %.5f)' % (human_string, score)
    # appendowanie = str(human_string)
    appendFile = open('/home/inception/wikipedia.txt', 'a')
    appendFile.write('\n\n'+str(i))
    appendFile.write(a.encode("utf-8"))
    appendFile.close()
我想从列表中选取5个条目,在wikipedia中搜索,然后将整篇文章放到wikipedia.txt文件中。 有时维基百科搜索会给我一个错误,因为列表中的单词未知: 示例错误

Traceback (most recent call last):   File "label_image.py", line 68, in <module>
    wiki = wikipedia.page(lista[i])   File "/usr/local/lib/python2.7/dist-packages/wikipedia/wikipedia.py", line 276, in page
    return WikipediaPage(title, redirect=redirect, preload=preload)   File "/usr/local/lib/python2.7/dist-packages/wikipedia/wikipedia.py", line 299, in __init__
    self.__load(redirect=redirect, preload=preload)   File "/usr/local/lib/python2.7/dist-packages/wikipedia/wikipedia.py", line 345, in __load
    raise PageError(self.title) wikipedia.exceptions.PageError: Page id "gracile crown blackbird" does not match any pages. Try another id!
Traceback(最近一次调用last):文件“label_image.py”,第68行,在
wiki=wikipedia.page(lista[i])文件“/usr/local/lib/python2.7/dist-packages/wikipedia/wikipedia.py”,第276行,第页
返回WikipediaPage(title,redirect=redirect,preload=preload)文件“/usr/local/lib/python2.7/dist packages/wikipedia/wikipedia.py”,第299行,在__
self.\u load(redirect=redirect,preload=preload)文件“/usr/local/lib/python2.7/dist packages/wikipedia/wikipedia.py”,第345行,在\u load中
raise PageError(self.title)wikipedia.exceptions.PageError:页面id“gracile crown blackbird”与任何页面都不匹配。试试别的身份证!
细冠黑鸟

我想更改脚本以忽略wikipedia scraper无法加载的单词
有没有办法用一个脚本找到所有错误的单词?

请使用try,但以下情况除外:

try:
    <get the article>
except wikipedia.exceptions.PageError as e:
    if "does not match any pages" in str(e):
        <ignore the error>
    else:
        # Some other error jumped out, so do not ignore it:
        raise


应该给你真实的东西,而不是签入str(e)

使用try,除非:

try:
    <get the article>
except wikipedia.exceptions.PageError as e:
    if "does not match any pages" in str(e):
        <ignore the error>
    else:
        # Some other error jumped out, so do not ignore it:
        raise


应该给你真实的东西,而不是登记str(e)

谢谢,我想这就是了。我没有得到
raise
的东西,我应该在
else
中添加其他错误消息吗?在if语句中,我添加了
wiki=wikipedia.page(lista[I+1])
以获取下一篇文章。我需要把它编码得更复杂一点。有一种错误信息,它给了我一个可能的维基百科文章列表。我认为应该有一个选择来抓住第一个并阅读这篇文章。但是,如果没有任何提示,则只会提示错误。转到Python的site packages目录,阅读wikipedia/exceptions.py以了解PageError()的具体工作方式以及在何种情况下它将具有哪些属性。还有文件。您可以使用wikipedia.search()而不是直接调用页面。谢谢,我想就是这样。我没有得到
raise
的东西,我应该在
else
中添加其他错误消息吗?在if语句中,我添加了
wiki=wikipedia.page(lista[I+1])
以获取下一篇文章。我需要把它编码得更复杂一点。有一种错误信息,它给了我一个可能的维基百科文章列表。我认为应该有一个选择来抓住第一个并阅读这篇文章。但是,如果没有任何提示,则只会提示错误。转到Python的site packages目录,阅读wikipedia/exceptions.py以了解PageError()的具体工作方式以及在何种情况下它将具有哪些属性。还有文件。您也许可以使用wikipedia.search()而不是直接调用页面。
e.message