2014-09-20 5 views
1

나는 최근 wikipedia 모듈을 사용하여 임의의 위키 백과 페이지를 결정했습니다. 나는 단어의 매우 큰 목록이을하고있다위키 백과 명확성 오류

하고 random.choice() 모듈 않도록 : 가장 자주 일을

words=open("words.txt","r") 
words=words.read() 

words=words.split()  

text=random.choice(words) 

string=random.choice(wikipedia.search(text)) 

p = wikipedia.page(string) 

시스템이 나타나지만 가끔 오류를 질식 것 :

Traceback (most recent call last): 
    File "/home/will/google4.py", line 25, in <module> 
    p = wikipedia.page(string) 
    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 393, in __load 
    raise DisambiguationError(getattr(self, 'title', page['title']), may_refer_to) 
DisambiguationError: "The Scarf" may refer to: 
The Scarf (film) 
The Scarf (opera) 
Scarf (disambiguation) 
Arthur Stewart King Scarf 

어쨌든 이것을 우회 할 수 있습니까?

답변

1

명백한 방법 중 하나는 위키 피 디아 페이지 이름의 전체 목록을 다운로드하고 단어 목록 대신 사용하는 것입니다. 위키 피 디아의 검색 엔진은 랜덤 한 페이지를 얻을 필요가 없다. (게다가, 무작위로 랜덤 한 페이지를 원한다면 검색 엔진을 사용하면 안된다.)

덜 좋지만 아마도 더 쉬운 수정은 DisambiguationError를 제외하고 간단하게 시도하거나 다시 시도해보십시오.

아직
1

더 나은, 귀하의 처분에 도구를 사용

wikipedia.random(pages=1) 

Get a list of random Wikipedia article titles. 

Note 

Random only gets articles from namespace 0, meaning no Category, User talk, or other meta-Wikipedia pages. 

Keyword arguments: 

    pages - the number of random pages returned (max of 10) 

(https://wikipedia.readthedocs.io/en/latest/code.html#api에서)