我正在分析 url 网络钓鱼数据,一些 url 可能有多个重定向(301、302)。
我可以使用 curl
获得最终目的地和重定向次数:
curl -Ls -o /dev/null -w "%{num_redirects},%{url_effective}" <url>
用 python 做同样的事情
requests
:import requests
r = requests.get(url, allow_redirects=True)
if r.history:
print(f'{len(r.history)},{r.history[-1].url}')
我发现使用
requests
history
没有给我最终目的地(尽管下载的内容与 curl
相同)。例如给定网址(这是一个合法的网址,我发誓)
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/#/'
关于python如何在重定向后获取最终目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61713731/