【问题标题】:Get links from summary section of wikipedia page从维基百科页面的摘要部分获取链接
【发布时间】:2021-06-04 12:11:33
【问题描述】:

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

这个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&section=1

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

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

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

【问题讨论】:

    标签: mediawiki wikipedia-api mediawiki-api pywikibot


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以通过以下命令使用 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]
      

      您可以使用此代码 sn-ps 创建脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-20
        相关资源
        最近更新 更多