У меня есть чудовищный URL-адрес Facebook «https://l.facebook.com/l.php?u=http%3A%2F%2Fon.theatln.tc%2FEQs2HvJ%3Ffbclid%3DIwAR3TDwS8n30YYzCVqPceAVd3D_OYmy_SHWGTqKjNVPaI_C0qZn9OgIMRdAQ&h=AT2IGmpY8Hn4DC7nr9l8PScyiYSQYxxP9mY9cA0z09dgbhN0s4nv6lXhrxXDtRVkfwDbRqb5jMMiK_XIVkUooNdUlNA1v56my_FaYOPy7CskvfoqH5VrrICUs7qoq83L_TWzmm8SE4pp8v1l0ikDBvky35KSq3FCGTLhgkTm3XP4XNXCur-R80JJwwmWtLspm5tbpx26475YU1yUdognJg2CCCredWJehAth4xsqeOFUw40EvwWtBrtRgDZdE3ERHr7_53dccR6XnZqR5Jwqdh-UkVkY-UdItvLicSwmjWT7IErBGTmBDoFx0pQk4Hc4SvoJ-CIZkRwOBUHA41-OzQIvlSqbbWdCZvvs2b9b3PO87ZFlh07XKnj7Lp4EJD_SPl-10yDvEZOaLfz23Mljr2aVTcnuDw9mWqWtb_bY0LLiCKJlmUK6CU2fzfJre6aN1AfOncKnTLVa6Kf1-cB-F5ftF8icUWye1hBmJ5LQCxbqlq1AAyonYk2L-Kiw6nytcu5g-MYCYhy8pAuOVn_YioWY0wa93xjlySV45GkMW3H0xtv_tRVnPsGo-Ts0CpshD1Xx9B9txOXP-WvipQ9AXV2uBN33WXq01xULSRr3bN3qGKsR7wo3LOl8w0QwyMDH4-0»
Я хочу распечатать ссылку, на которую указывает этот URL-адрес: «https://www.theatlantic.com/culture/archive/2020/05/upload-black-mirror-hell-digital-heaven/611293/. "
Мой код работает для синтаксического анализа большинства URL-адресов Facebook, но недавно я обнаружил, что он не работает с этим типом. Он печатает «http://on.theatln.tc/EQs2HvJ.»
# url is the long FB url import urllib.parse as url_parse news_link = url_parse.unquote(url).split("?u=")[1].split("?fbclid")[0] print(news_link)
Вроде нормально работает. Этот URL-адрес (http://on.theatln.tc/EQs2HvJ) выглядит как ссылка, встроенная в URL-адрес facebook. Если вы получите эту ссылку, она, вероятно, приведет к перенаправлению на конечный пункт назначения. Рассмотрите возможность использования модуля запросов для отслеживания перенаправлений:
http://on.theatln.tc/EQs2HvJ
>>> import requests >>> x = requests.get('http://on.theatln.tc/EQs2HvJ') >>> print(x.url) https://www.theatlantic.com/culture/archive/2020/05/upload-black-mirror-hell-digital-heaven/611293/?utm_source=facebook&utm_campaign=the-atlantic&utm_content=edit-promo&utm_medium=social&utm_term=2020-05-07T16%3A56%3A03 >>>
Или альтернативно:
>>> x = requests.head('http://on.theatln.tc/EQs2HvJ') >>> print(x.headers['location']) https://www.theatlantic.com/culture/archive/2020/05/upload-black-mirror-hell-digital-heaven/611293/?utm_source=facebook&utm_campaign=the-atlantic&utm_content=edit-promo&utm_medium=social&utm_term=2020-05-07T16%3A56%3A03
Преимущество здесь в том, что он не получает конечный URL.