如何检索维基百科页面的最终重定向链接?

How can I retrieve the final redirect link of a Wikipedia page?

提问人:Amit Sarussi 提问时间:6/16/2023 最后编辑:InSyncAmit Sarussi 更新时间:6/17/2023 访问量:45

问:

我正在尝试编写一个 Python 脚本来检索维基百科页面的最终重定向链接。例如,在访问 “” 时,它应该返回 “”。http://en.wikipedia.org/wiki/Zzzzzzhttps://en.wikipedia.org/wiki/Z_(joke_line)

我有以下代码,可用于获取任何链接的重定向,也适用于 YouTube URL 缩短器,但它似乎不适用于维基百科链接:

import requests

def get_final_url(url):
    response = requests.get(url, allow_redirects=False)
    if response.status_code in (300, 301, 302, 303, 307, 308):
        return response.headers['Location']
    else:
        return None

initial_url = "http://en.wikipedia.org/wiki/Zzzzzz"  # Replace with your URL
final_url = get_final_url(initial_url)
print("Final URL:", final_url)
http://en.wikipedia.org/wiki/Zzzzzz -> http://en.wikipedia.org/wiki/Zzzzzz
https://youtu.be/nMFv8YPOQdY -> https://www.youtube.com/watch?v=nMFv8YPOQdY&feature=youtu.be
重定向 python请求 维基百科

评论

0赞 hookedonwinter 6/17/2023
我试图看看那个 Zzzzzz url 是如何以 en.wikipedia.org/wiki/Z_(joke_line) 结尾的,唯一引用的是正文内容。这个答案似乎暗示了相同的方法:stackoverflow.com/a/47537837/190902
0赞 logi-kal 6/24/2023
这回答了你的问题吗?Python - 如何获取维基百科将我重定向到的页面?

答:

0赞 Amit Sarussi 6/17/2023 #1

以下是最终对我有用的东西:

import requests, json

def get_final_url(name):
    url = f'https://en.wikipedia.org/w/api.php?action=query&titles={name}&redirects&format=json'
    response = requests.get(url)
    return json.loads(response.text)["query"]["redirects"][0]["to"]

initial_url = "Zzzzzz"  # Replace with your URL
final_url = get_final_url(initial_url)
print(final_url)

评论

0赞 Community 6/18/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。