📜  在Python中从 Wikipedia 的信息框中获取文本(1)

📅  最后修改于: 2023-12-03 14:51:19.055000             🧑  作者: Mango

在Python中从 Wikipedia 的信息框中获取文本

如果你需要从Wikipedia(维基百科)的信息框中获取文本,可以使用Python的工具。在本文中,我们将介绍如何使用维基百科 API 和 Python 库来实现此目标。

1. 使用维基百科 API

维基百科提供了一个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的参数中设置了propinfobox。这将指示API返回页面的信息框内容。

2. 使用pywikibot库

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库。