我正在尝试检索英语维基百科数据库中的页面列表的反向链接列表。我首先尝试使用mediawiki api收集所有链接,使用blcontinue参数;然而,当我查询某些页面(例如加拿大)时,存在过多的反向链接,即许多,数千。
当我查看加拿大页面的“这里的链接”并排除重定向时,似乎再次出现过多的数量(https://en.wikipedia.org/w/index.php?title=Special:WhatLinksHere/Canada&namespace=0&limit=5000&hideredirs=1)。我决定在当前时间,我可以使用完整的链接而不是完整的链接列表,所以我使用推荐的工具(https://en.wikipedia.org/wiki/Help:What_links_here#Number_of_links)并查询api for Canada,非重定向(默认命名空间为0),有效地复制上述查询。这是文档,https://dispenser.info.tm/~dispenser/cgi-bin/backlinkscount.py,以及一些示例R代码:
bl_url <- "https://dispenser.info.tm/~dispenser/cgi-bin/backlinkscount.py"
query_param <- list(
title = "Canada",
filterredir = "nonredirects")
bbl <- GET(bl_url, query = query_param)
num_bl <- as.numeric(content(bbl))
> num_bl
[1] 353
这是调用api产生的url:
https://dispenser.info.tm/~dispenser/cgi-bin/backlinkscount.py?title=Canada&filterredir=nonredirects
所以返回的总数是353,远远低于“这里的链接”
我错过了一些明显的东西吗
没有人注意到nonredirect
和redirect
的逻辑被交换多年。我杀死了旧的参数名称filterredir
,创建了具有预期行为的filter
,更好的错误处理和更清晰的指令。