获取重定向到维基百科页面的所有 URL 的列表?

问题描述 投票:0回答:2

我需要知道我正在做的项目的所有不同的 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&gapfilterredir=nonredirects

然后是不过滤重定向的

https://en.wikipedia.org/w/api.php?action=query&generator=allpages&format=json&gaplimit=500&

我知道您可以将这两组数据相分离,并且这些是重定向 URL,并且您可以对所有页面无限地执行此操作并找到所有重定向名称/URL,但是如果我可以简单地找到一种方法将 URL 发送到 Wikipeidia 的 API,并以某种方式获取返回最终页面 URL 的所有 URL 的列表。先感谢您!

mediawiki wikipedia wikipedia-api
2个回答

0
投票

在 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"}]}}}}'
© www.soinside.com 2019 - 2024. All rights reserved.