python如何在重定向后获得最终目的地



我正在分析url钓鱼数据,有些url可能有几个重定向(301302(。

我可以使用curl:获得最终目的地和重定向次数

curl -Ls -o /dev/null -w "%{num_redirects},%{url_effective}" <url>

用pythonrequests:做同样的事情

import requests
r = requests.get(url, allow_redirects=True)
if r.history:
print(f'{len(r.history)},{r.history[-1].url}')

我发现使用requestshistory并不能给我最终的目的地(尽管下载的内容与curl相同(。

例如,给定url(我发誓这是一个合法的url(https://ludik.xyz/music,这就是我用curl:得到的

1,https://ludik.herokuapp.com/#/

这就是我在python中得到的:

1,https://ludik.xyz/music

在python中进行所有重定向后,我如何才能获得最终目的地?

最终url设置在响应对象上:

In [5]: import requests 
...:  
...: r = requests.get("https://ludik.xyz/music")                                                                                                                                                                                           
In [8]: r.url                                                                                                                                                                                                                                 
Out[8]: 'https://ludik.herokuapp.com/#/'

最新更新