维基百科的python包装器
Wikipedia-A的Python项目详细描述
维基百科API
wikipedia api 很容易使用python包装器,用于 wikipedias' api。它支持从维基百科中提取文本、节、链接、类别、翻译等。文档为最常见的用例提供了代码片段。
安装
此软件包至少需要Python3.4才能安装,因为它使用的是Intenum。
pip3installwikipedia-api
用法
wikipedia api的目标是提供简单易用的api,用于从wikipedia检索信息。下面是常见用例的示例。
导入
importwikipediaapi
如何获取单页
获取单个页面很简单。必须初始化wikipedia对象并按其名称请求页面。 它的参数语言是支持的语言之一。
importwikipediaapiwiki_wiki=wikipediaapi.Wikipedia('en')page_py=wiki_wiki.page('Python_(programming_language)')
如何检查wiki页面是否存在
要检查页是否存在,可以使用函数 exists
page_py=wiki_wiki.page('Python_(programming_language)')print("Page - Exists: %s"%page_py.exists())# Page - Exists: Truepage_missing=wiki_wiki.page('NonExistingPageWithStrangeName')print("Page - Exists: %s"%page_missing.exists())# Page - Exists: False
如何获取页面摘要
类wikipediapage具有属性summary,该属性返回wiki页的描述。
importwikipediaapiwiki_wiki=wikipediaapi.Wikipedia('en')print("Page - Title: %s"%page_py.title)# Page - Title: Python (programming language)print("Page - Summary: %s"%page_py.summary[0:60])# Page - Summary: Python is a widely used high-level programming language for
如何获取页面URL
Wikipediapage 有两个带有页面URL的属性。它是 fullurl 和 canonicalurl
print(page_py.fullurl)# https://en.wikipedia.org/wiki/Python_(programming_language)print(page_py.canonicalurl)# https://en.wikipedia.org/wiki/Python_(programming_language)
如何获取全文
要获取Wikipedia页面的全文,您应该使用构造页面文本的属性 作为摘要和章节及其标题和课文. < /P>
wiki_wiki=wikipediaapi.Wikipedia(language='en',extract_format=wikipediaapi.ExtractFormat.WIKI)p_wiki=wiki_wiki.page("Test 1")print(p_wiki.text)# Summary# Section 1# Text of section 1# Section 1.1# Text of section 1.1# ...wiki_html=wikipediaapi.Wikipedia(language='en',extract_format=wikipediaapi.ExtractFormat.HTML)p_html=wiki_html.page("Test 1")print(p_html.text)# <p>Summary</p># <h2>Section 1</h2># <p>Text of section 1</p># <h3>Section 1.1</h3># <p>Text of section 1.1</p># ...
如何获取页面部分
要获取页面的所有顶层部分,必须使用属性 sections 。它返回 wikipediapagesection ,因此必须使用递归来获取所有子部分。
defprint_sections(sections,level=0):forsinsections:print("%s: %s - %s"%("*"*(level+1),s.title,s.text[0:40]))print_sections(s.sections,level+1)print_sections(page_py.sections)# *: History - Python was conceived in the late 1980s,# *: Features and philosophy - Python is a multi-paradigm programming l# *: Syntax and semantics - Python is meant to be an easily readable# **: Indentation - Python uses whitespace indentation, rath# **: Statements and control flow - Python's statements include (among other# **: Expressions - Some Python expressions are similar to l
如何以其他语言获取页面
如果要获取给定页的其他翻译,则应使用属性langlinks。它是地图, 其中键是语言代码,值是wikipediapage
defprint_langlinks(page):langlinks=page.langlinksforkinsorted(langlinks.keys()):v=langlinks[k]print("%s: %s - %s: %s"%(k,v.language,v.title,v.fullurl))print_langlinks(page_py)# af: af - Python (programmeertaal): https://af.wikipedia.org/wiki/Python_(programmeertaal)# als: als - Python (Programmiersprache): https://als.wikipedia.org/wiki/Python_(Programmiersprache)# an: an - Python: https://an.wikipedia.org/wiki/Python# ar: ar - بايثون: https://ar.wikipedia.org/wiki/%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86# as: as - পাইথন: https://as.wikipedia.org/wiki/%E0%A6%AA%E0%A6%BE%E0%A6%87%E0%A6%A5%E0%A6%A8page_py_cs=page_py.langlinks['cs']print("Page - Summary: %s"%page_py_cs.summary[0:60])# Page - Summary: Python (anglická výslovnost [ˈpaiθtən]) je vysokoúrovňový sk
如何获取其他页面的链接
如果要从给定页面获取指向其他wiki页面的所有链接,则需要使用属性 links 。 它是map,其中键是页面标题,值是wikipediapage
pip3installwikipedia-api0
如何获取页面类别
如果要获取页面所属的所有类别,则应使用属性 categories 。 它是map,其中key是category title,value是wikipediapage
pip3installwikipedia-api1
如何从类别中获取所有页面
要从给定类别获取所有页面,应使用属性 categorymembers 。它返回给定类别的所有成员。 您必须自己实现递归和重复数据消除。
pip3installwikipedia-api2
如何查看底层api调用
如果在检索数据时遇到问题,可以获取未还原的api调用的url。 这将帮助您确定问题是在库中还是在其他地方。
pip3installwikipedia-api3