【问题标题】:How to get backlinks in certain pages in wikipedia in python?如何在python中获取维基百科某些页面的反向链接?
【发布时间】:2020-03-23 23:45:57
【问题描述】:

我正在使用以下代码来获取维基百科页面的反向链接。

import pywikibot as pw
backlinks_list = []

for item_backlink in pw.Page(pw.Site('en', 'wikipedia'), wikipedia_name).backlinks():
    backlinks_list.append(item_backlink.title())

但是,当我在代码中设置wikipedia_name = "Cyproheptadine" 时,出现以下错误。

pywikibot.exceptions.CircularRedirect: Page [[en:Dibenzocycloheptene]] is a circular redirect.
CRITICAL: Exiting due to uncaught exception <class 'pywikibot.exceptions.CircularRedirect'>

我想知道为什么会发生这种情况以及如何获取此类页面的反向链接?

如果需要,我很乐意提供更多详细信息。

【问题讨论】:

    标签: python mediawiki wikipedia wikipedia-api mediawiki-api


    【解决方案1】:

    默认情况下,.backlinks() 包含重定向页面的反向链接。 虽然这有时是一个理想的功能,但它会导致您的情况出现错误。 “Dibenzocycloheptene”是“Cyproheptadine”的反向链接,但“Dibenzocycloheptene”也是对“Dibenzosuberane”的重定向,它又是对“Dibenzocycloheptene”的重定向。这是一个圆圈,因此 pywikibot 会引发错误。

    你可以通过设置.backlinks(follow_redirects=False)来解决这个问题。那么重定向的反向链接将不会包含在您的列表中。

    由于循环重定向非常少见,您也可以从源头解决此问题:访问 Wikipedia 并通过删除“二苯并环庚烯”上的重定向链接来切圈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多