Используя запросы. Получить перенаправленный URL - PullRequest
0 голосов
/ 29 апреля 2020

У меня супер длинный 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, это было бы здорово, но Google сказал мне, что это невозможно.)

1 Ответ

1 голос
/ 30 апреля 2020

Поскольку вы просто хотите получить 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)
...