如何在 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 来切断循环。
我正在使用以下代码获取维基百科页面的反向链接。
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 来切断循环。