使用requests.get获取重定向的url

2024-10-02 04:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个超长的url,我正试图打印它的最终目的地。我有:

import requests
url = "https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.washingtonpost.com%2Fscience%2F2020%2F04%2F29%2Fcoronavirus-detection-dogs%2F%3Ffbclid%3DIwAR00eT4EHsWC9986GUSox_7JS7IIg2wAan-tB-NteYJd8I4xckmxnfaNGEI&h=AT0cs4gTKPZlkSElC2uhoDYR98lsONooq_ZUFIK87khBmtZE_3r8j25EfioBPAdp-O8o7efRVG9uB-doy9vLT-AccZMrxnfpEiSYRmA2LTL21IU15bP_PTVw4SSibS1A_uE8bU-ROJexKgdk68VSTtE&__tn__=H-R&c[0]=AT3BNcTNFE13IJu3naJmxTRdJTWtO4O4L0_-nimmzcXpYv3N536YRpQZLg-v2FtP_Oz2DZZpBN6XQPb89JNJTsYFXlK8-1g4xdDLi1T_lfowpI5Ooh8kuLpciLiQ9t-ZmMd2CTUWaGZ_Y_JU0OEvVWfLLfjDq4VOzUtETBcvXHw2ZvQnTQ"
r = requests.get(url, allow_redirects=False)
print(r.headers['Location'])

它应该能让我到达https://www.washingtonpost.com/science/2020/04/29/coronavirus-detection-dogs/?fbclid=IwAR00eT4EHsWC9986GUSox_7JS7IIg2wAan-tB-NteYJd8I4xckmxnfaNGEI。但我得到了和我输入的相同的URL

(顺便说一句,如果有人碰巧知道如何用Javascript实现这一点,那就太棒了,但谷歌告诉我这是不可能的。)


Tags: httpsimportcomurlfacebookrequeststbphp
1条回答
网友
1楼 · 发布于 2024-10-02 04:22:16

因为你只想得到URL,requests这里没有那么多帮助。相反,您可以使用urllib.parse

import urllib.parse as url_parse


url = <https://l.facebook.com/l.php?u=https...>
news_link = url_parse.unquote(url).split("?u=")[1]

# if you wish to delete Facebook Id, you can add this too
news_link  = url_parse.unquote(url).split("?u=")[1].split("?fbclid")[0]
print(news_link)

相关问题 更多 >

    热门问题