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

标签 python curl redirect python-requests

我正在分析 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/

相关文章:

IOS:在 iPad 中将 curl 效果作为 map

php - 使用 PHP 从 google map 获取图钉

wordpress - 在子目录中设置 wordpress 时 wp-admin 重定向错误

python - 从 Flask 发送带有代码 401 的重定向不会重定向

python - 在 Pyspark 中将 Pandas Dataframe 转换为 Spark Dataframe 时出现类型错误

Python Pandas 系列失败日期时间

python - 将此 curl 命令转换为 Python 3

python - SVM:使用 2 个以上特征时绘制决策面

python - Python2 和 Python3 之间的 BeautifulSoup HTMLparsingError

.htaccess - 终极移动 .htaccess 重定向