从维基百科页面的摘要部分获取链接
Get links from summary section of wikipedia page
我正在尝试从维基百科页面的摘要部分提取链接。我尝试了以下方法:
这个url提取了Deep learning
页面的所有链接:
https://en.wikipedia.org/w/api.php?action=query&prop=links&titles=Deep%20learning
为了提取与任何部分关联的链接,我可以根据部分 ID 进行过滤 - 例如,
对于同一页的 Definition
部分我可以使用这个 url : https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=1
对于同一页的 Overview
部分我可以使用这个 url : https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=2
但我不知道如何只从 summary
部分提取链接
我什至尝试使用 pywikibot 提取链接页面并调整 plnamespace
变量,但无法仅获取摘要部分的链接。
您需要使用https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=0
请注意,这还包括
{{machine learning bar}} 和 {{Artificial intelligence|Approaches}} 模板(在屏幕右侧)。
您可以通过以下命令使用 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
是一个列表,其中包含按字母顺序排列的所有 link 标题。如果您更喜欢 Page
objects 作为结果,您可以使用
创建它们
>>> pages = [pywikibot.Page(site, title) for title in links]
您可以使用此代码片段创建脚本。
我正在尝试从维基百科页面的摘要部分提取链接。我尝试了以下方法:
这个url提取了Deep learning
页面的所有链接:
https://en.wikipedia.org/w/api.php?action=query&prop=links&titles=Deep%20learning
为了提取与任何部分关联的链接,我可以根据部分 ID 进行过滤 - 例如,
对于同一页的 Definition
部分我可以使用这个 url : https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=1
对于同一页的 Overview
部分我可以使用这个 url : https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=2
但我不知道如何只从 summary
部分提取链接
我什至尝试使用 pywikibot 提取链接页面并调整 plnamespace
变量,但无法仅获取摘要部分的链接。
您需要使用https://en.wikipedia.org/w/api.php?action=parse&prop=links&page=Deep%20learning§ion=0
请注意,这还包括 {{machine learning bar}} 和 {{Artificial intelligence|Approaches}} 模板(在屏幕右侧)。
您可以通过以下命令使用 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
是一个列表,其中包含按字母顺序排列的所有 link 标题。如果您更喜欢 Page
objects 作为结果,您可以使用
>>> pages = [pywikibot.Page(site, title) for title in links]
您可以使用此代码片段创建脚本。