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 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python RobotFramework的安装过程及应用实战教程
这篇文章主要介绍了RobotFramework的安装过程及应用实战教程,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-08-08ubuntu 18.04搭建python环境(pycharm+anaconda)
这篇文章主要为大家详细介绍了ubuntu 18.04搭建python环境,包括Anaconda安装、Pycharm安装及初始配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-06-06python2.7安装opencv-python很慢且总是失败问题
这篇文章主要介绍了python2.7安装opencv-python很慢且总是失败问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02Python中Pandas库提供的函数pd.DataFrame的基本用法
pandas库中的pd.DataFrame()函数用于创建一个DataFrame对象,它是一个二维表格数据结构,每列可以是不同的数据类型(数值、字符串、布尔值等),下面这篇文章主要给大家介绍了关于Python中Pandas库提供的函数pd.DataFrame的基本用法,需要的朋友可以参考下2024-03-03
最新评论