📅  最后修改于: 2023-12-03 14:51:19.055000             🧑  作者: Mango
如果你需要从Wikipedia(维基百科)的信息框中获取文本,可以使用Python的工具。在本文中,我们将介绍如何使用维基百科 API 和 Python 库来实现此目标。
维基百科提供了一个API,可以让你通过HTTP请求获取内容。你可以使用requests
库来发送HTTP请求,并使用json
库处理JSON数据。
以下是一个简单的Python脚本,该脚本获取“Python”页面的信息框的内容:
import requests
import json
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
SEARCHPAGE = "Python_(programming_language)"
PARAMS = {
"action": "parse",
"page": SEARCHPAGE,
"prop": "infobox",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(json.dumps(DATA['parse']['infobox'], indent=4))
上面的脚本将返回Python
页面的信息框内容,例如:
{
"name": "Python",
"logo": "Python_logo_and_wordmark.svg",
"developer": [
"Guido van Rossum"
],
"programming_language": [
"Python"
],
"license": "Python Software Foundation License",
"latest_release_version": "3.10.0",
"latest_release_date": "October 4, 2021 ; 8 days ago (2021-10-04)[3]",
"website": "www.python.org"
}
这里的关键点是在传递给API的参数中设置了prop
为infobox
。这将指示API返回页面的信息框内容。
pywikibot是针对MediaWiki的Python库,可用于处理Wikipedia页面。
以下是一个示例脚本,该脚本获取“Python”页面的信息框内容:
import pywikibot
SEARCHPAGE = "Python_(programming_language)"
site = pywikibot.Site('en', 'wikipedia')
page = pywikibot.Page(site, SEARCHPAGE)
infobox = page.data['infobox']
print(infobox)
输出结果与第一段示例一样:
{
"name": "Python",
"logo": "Python_logo_and_wordmark.svg",
"developer": [
"Guido van Rossum"
],
"programming_language": [
"Python"
],
"license": "Python Software Foundation License",
"latest_release_version": "3.10.0",
"latest_release_date": "October 4, 2021 ; 8 days ago (2021-10-04)[3]",
"website": "www.python.org"
}
这里的关键点是使用pywikibot
库获取页面,并从页面数据中查找信息框。这种方法更容易理解和使用,但也需要额外学习pywikibot库的使用。
以上两种方法都可以在Python中获取维基百科的信息框。如果你只需要从维基百科获取一些数据,使用维基百科API方法比较好。如果你需要直接与维基百科进行更多的交互,并对所有信息框内容进行更复杂的处理,则最好使用pywikibot库。