python3中requests库重定向获取URL

 更新时间:2022年09月27日 10:34:05   作者:阿常呓语  
这篇文章主要介绍了python3中requests库重定向获取URL,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言:

有时候 我们抓取一些页面,发现一些url 有重定向, 返回 301 ,或者302 这种情况。 那么我们如何获取真实的URL呢? 或者跳转后的URL呢?

这里我使用 requests 作为演示

假设我们要访问 某东的电子商务网站,我只记得网站好像是 http://jd.com

import requests

def request_jd():
    url = 'http://jd.com/'
    #allow_redirects= False 这里设置不允许跳转
    response = requests.get(url=url, allow_redirects=False)

    print(response.headers)
    print(response.status_code)
    

看结果 返回response header 中有一个属性 Location ,代表重定向了 'Location': 'https://www.jd.com'

我们在浏览器中 chrome network 面板 ,抓包观察。 注意把 preserve log 这个选项勾选上。

从 浏览器的response header 中 我们可以看到 Location, 从 General 我们可以看到 status code 301 ,发生了跳转。

方法1:

你现在知道如何获取跳转后的URL了吗,直接从response header,获取 Location 即可。

在request.header 中 返回header 的key是不区分大小写的, 所以全小写也是可以正确取值的。

import requests

def request_jd():
    url = 'http://jd.com/'
    response = requests.get(url=url, allow_redirects=False)
    #return response.headers.get('location')
    return response.headers.get('Location')

方法2:

其实默认情况下, requests 会自动跳转,如果发生了重定向,会自动跳到location 指定的URL,我们只需要访问URL, 获取response, 然后 response.url 就可以获取到真实的URL啦。

import requests

def request_jd():
    url = 'http://jd.com/'
    response = requests.get(url=url)
	
    return response.url

到此这篇关于python3中requests库重定向获取URL的文章就介绍到这了,更多相关python获取URL 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3打包exe代码2种方法实例解析

    Python3打包exe代码2种方法实例解析

    这篇文章主要介绍了Python3打包exe代码2种方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python实现简单的可逆加密程序实例

    Python实现简单的可逆加密程序实例

    这篇文章主要介绍了Python实现简单的可逆加密程序,实例分析了Python实现可逆加密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • Django基于ORM操作数据库的方法详解

    Django基于ORM操作数据库的方法详解

    这篇文章主要介绍了Django基于ORM操作数据库的方法,结合实例形式总结分析了Django使用ORM操作数据库的相关配置、增删改查等相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python实现生成随机数据插入mysql数据库的方法

    Python实现生成随机数据插入mysql数据库的方法

    这篇文章主要介绍了Python实现生成随机数据插入mysql数据库的方法,涉及Python随机字符串生成及数据库连接、插入等相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • pytorch如何实现多个矩阵拼接

    pytorch如何实现多个矩阵拼接

    这篇文章主要介绍了pytorch如何实现多个矩阵拼接问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • PyTorch之nn.ReLU与F.ReLU的区别介绍

    PyTorch之nn.ReLU与F.ReLU的区别介绍

    这篇文章主要介绍了PyTorch之nn.ReLU与F.ReLU的区别介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 通过Pandas读取大文件的实例

    通过Pandas读取大文件的实例

    今天小编就为大家分享一篇通过Pandas读取大文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 用python实现爬取奥特曼图片实例

    用python实现爬取奥特曼图片实例

    大家好,本篇文章主要讲的是用python实现爬取奥特曼图片实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Django Rest Framework框架构建复杂API技能详解

    Django Rest Framework框架构建复杂API技能详解

    这篇文章会详细介绍Django REST Framework的核心组成部分,包括Serializers、ViewSets、Routers、权限和认证系统以及测试和调试工具,文章从基础开始,逐步深入,旨在帮助读者掌握使用Django REST Framework构建复杂API的技能
    2023-09-09
  • 全网最全python库selenium自动化使用详细教程

    全网最全python库selenium自动化使用详细教程

    这篇文章主要介绍了python库selenium自动化使用详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-01-01

最新评论