我需要知道我正在做的项目的所有不同的 URL 都指向相同的维基百科文章 URL。例如:
https://en.wikipedia.org/wiki/Lucite
重定向到最终 URL:
https://en.wikipedia.org/wiki/聚(甲基丙烯酸甲酯)
但是,我不确定有多少其他 URL 也重定向到该页面的最终 URL,将这个问题与其他所有维基百科文章相比较。是否有一个特定的 API 调用,我没有看到您可以发送最终的 page_name/URL,并且它返回重定向到最终 URL 的所有名称/URL 的 JSON?如果存在的话我真的需要这样的东西。作为参考,我已经查看过,并且我知道您可以对所有页面执行两个 API 调用,如下所示:
然后是不过滤重定向的
https://en.wikipedia.org/w/api.php?action=query&generator=allpages&format=json&gaplimit=500&
我知道您可以将这两组数据相分离,并且这些是重定向 URL,并且您可以对所有页面无限地执行此操作并找到所有重定向名称/URL,但是如果我可以简单地找到一种方法将 URL 发送到 Wikipeidia 的 API,并以某种方式获取返回最终页面 URL 的所有 URL 的列表。先感谢您!
在 Python 中,使用 mediawiki API:
import requests
page = "Aframomum_corrorima"
url = f"https://en.wikipedia.org/w/api.php?action=query&titles={page}&prop=redirects&format=json"
requests.get(url).content
[出]:
b'{"batchcomplete":"",
"query":{"normalized":[{"from":"Aframomum_corrorima","to":"Aframomum corrorima"}],
"pages":{"25998011":{"pageid":25998011,"ns":0,"title":"Aframomum corrorima",
"redirects":[{"pageid":25998201,"ns":0,"title":"Kororima"},
{"pageid":25998202,"ns":0,"title":"Ethiopian cardamom"},
{"pageid":25998203,"ns":0,"title":"False cardamom"},
{"pageid":25998682,"ns":0,"title":"Korarima"},
{"pageid":32131985,"ns":0,"title":"Amomum corrorima"},
{"pageid":32138888,"ns":0,"title":"False Cardamom"},
{"pageid":32138891,"ns":0,"title":"Ethiopian Cardamom"},
{"pageid":37285909,"ns":0,"title":"Korerima"}]}}}}'