python - python如何在重定向后获得最终目的地
问题描述
我正在分析 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}')
我发现 usingrequests
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/#/'
推荐阅读
- java - 我需要帮助在 java 中的方法中调用方法
- sql - 别名字段 列名无效
- javascript - 使用函数()提取数据后,如何将 JSON 对象数据存储到变量中?
- python - 哪种文件类型是“7a7e656a”幻数?
- angular - 如何使用 Ionic Twitter Connect 插件发布推文
- file - awk:如果其他字段匹配值,则打印字段范围
- javascript - 如何制作交互式代码?
- javascript - Chrome 开发工具的奇怪行为无缘无故地从元素随机切换到源
- javascript - 如何使用属于 product_category 的选项设置订单
- unit-testing - 如何对 Sitecore MVC 中的方法进行单元测试,该方法对两个不同的 Sitecore 上下文具有紧密耦合的依赖关系?