0

我正在尝试从维基百科页面的摘要部分中提取链接。我尝试了以下方法:

此 url 提取Deep learning页面的所有链接: https ://en.wikipedia.org/w/api.php?action=query&prop=links&titles=Deep%20learning

为了提取与任何部分关联的链接,我可以根据部分 id 进行过滤 - 例如,

对于Definition同一页面的部分,我可以使用此网址:https ://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=1

对于Overview同一页面的部分,我可以使用此网址:https ://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=2

但我无法弄清楚如何只从summary部分中提取链接

在此处输入图像描述

我什至尝试使用 pywikibot 提取链接页面并调整plnamespace变量,但无法仅获取摘要部分的链接。

4

2 回答 2

1

您需要使用https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=0

请注意,这也包括 {{machine learning bar}} 和 {{Artificial intelligence|Approaches}} 模板中的链接(在屏幕右侧)。

于 2021-06-04T13:32:22.247 回答
1

您可以通过以下命令使用Pywikibot

>>> import pywikibot
>>> from pwikibot import textlib
>>> site = pywikibot.Site('wikipedia:en')  # create a Site object
>>> page = pywikibot.Page(site, 'Deep learning')  # create a Page object
>>> sect = textlib.extract_sections(page.text, site)  # divide content into sections
>>> links = sorted(link.group('title') for link in pywikibot.link_regex.finditer(sect.head))

现在links是一个列表,其中包含按字母顺序排列的所有链接标题。如果您更喜欢Page对象,则可以使用

>>> pages = [pywikibot.Page(site, title) for title in links]

您可以使用此代码片段创建脚本。

于 2021-06-04T13:51:34.660 回答