2017-02-22 52 views
0

我使用python库维基百科来解析数据。当它到达代码的第二部分时,我会收到页面错误。 Page ErrorsPython Wikipedia库

import wikipedia 


print ("1: Searching Wikipedia for 'List of Lexus vehicles'") 
try: 
    print (wikipedia.page('List of Lexus')) 
    print ('-' * 60) 
except wikipedia.exceptions.DisambiguationError as e: 
    print (str(e)) 
    print ('+' * 60) 
    print ('DisambiguationError: The page name is ambiguous') 
print 


print ("2: Searching Wikipedia for 'List of Lexus (vehicles)'") 
print (wikipedia.page('List of Lexus_(vehicles)')) 
print 


result = wikipedia.page('List of Lexus_(vehicles)').content.encode('UTF8') 
print ("3: Result of searching Wikipedia for 'List of Lexus_(vehicles)':") 
print (result) 
print 

lexus_count = result.count('ct','lfa','rx') 
print 


print ("The Wikipedia page for 'Lexus_(company)' has " + \ 
    "{} occurrences of the word 'Lexus'".format(lexus_count)) 
print 

更新 我能够解析在数

23 print 
24 
25 lexus_count = result.count('ct','lfa','rx') 
26 print 
TypError: slice indices must be integers or None or have an __index__ method 
+1

请将您收到的错误复制并粘贴到问题中,而不是发布文字图像。 – jwodder

+1

当我在维基百科上搜索雷克萨斯(公司)时,结果显示:'雷克萨斯(公司)“页面不存在。您可以要求创建它,但请考虑检查下面的搜索结果,以确定该主题是否已被覆盖。所以错误信息是有道理的 – smoggers

回答

0

您的程序有多个问题。这是一个更新的程序,错误已修复并标记出来。

import wikipedia 


print ("1: Searching Wikipedia for 'Lexus'") 
try: 
    print (wikipedia.page('Lexus')) 
    print ('-' * 60) 
except wikipedia.exceptions.DisambiguationError as e: 
    print (str(e)) 
    print ('+' * 60) 
    print ('DisambiguationError: The page name is ambiguous') 
print 


print ("2: Searching Wikipedia for 'Lexus (company)'") 
result = wikipedia.page('Lexus (company)') 
# ERR; PAGE NAME SEPARATED BY SPACE NOT WITH AN UNDERSCORE 
# <> PAGE ERROR AS PAGE WILL NOT BE FOUND. 
print (result) 
print 


result = result.content 
print ("3: Result of searching Wikipedia for 'Lexus_(company)':") 
print (result) 
print 

lexus_count = result.count('Lexus') 
# changed variable name from orange_count -> lexus_count, as referenced in the print function below. 
# you were counting for 'lexus' you will not find any occurrences as this function is case sensitive. 
print 


print ("The Wikipedia page for 'Lexus_(company)' has " + \ 
    "{} occurrences of the word 'Lexus'".format(lexus_count)) 
print 

希望这会有所帮助。

0

你到底是哪一个得到错误页的页面数据,但得到错误类型?

根据维基百科的资料:https://wikipedia.readthedocs.io/en/latest/quickstart.html#quickstart

但要小心 - wikipedia.summary将引发DisambiguationError如果页面是一个消歧义页,或PageError如果页面不存在(虽然默认,它会尝试找到您提供的建议和搜索页面。):