如何在 python 的维基百科中的某些页面中获取反向链接?

How to get backlinks in certain pages in wikipedia in python?

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

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'>

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

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

默认情况下,.backlinks() 包括返回link 的重定向页面。 虽然这有时是一个理想的功能,但它会导致您的情况出现错误。 "Dibenzocycloheptene" 是 "Cyproheptadine" 的后退 link,但 "Dibenzocycloheptene" 也是指向 "Dibenzosuberane" 的重定向,后者又是指向 "Dibenzocycloheptene" 的重定向。这是一个圆圈,因此 pywikibot 会抛出错误。

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

由于循环重定向非常少见,您也可以从源头上解决此问题:转到维基百科并通过删除 "Dibenzocycloheptene" 上的重定向 link 来切断循环。