WordPress课程广告

Python requests获取状态码

释放双眼,带上耳机,听听看~!

Python requests获取状态码可以通过status_code获取,例如:

r = requests.get('https://httpbin.org/get')
print(r.status_code) # 打印状态码

但是:requests默认不会获取301/302状态码。使用上述代码如果请求了一个被301/302跳转的URL,也会返回跳转后的状态码,如果是正常请求就是返回200,我们如果需要获取请求的301/302状态码,可以设置allow_redirects=False参数来获取所有的状态码。

我相信还有其他小伙伴会和我一样,在请求一个301或者302状态码的网页的时候,发现返回的确实200状态码,现在我们就知道可以通过加allow_redirects=False参数来解决啦,下面一起看下示例代码吧:

示例代码:

# GitHub 会将所有 HTTP 请求重定向到 HTTPS
r = requests.get('http://github.com/')

print(r.url) # 'https://github.com/'

print(r.status_code) # 200

获取301/302状态码

# 使用allow_redirects=False参数:
r = requests.get('http://github.com/', allow_redirects=False)

print(r.status_code) # 301

除了使用allow_redirects=False,我们还可以使用 Response 对象的history属性来跟踪重定向。

r = requests.get('http://github.com/')

print(r.status_code) # 200

print(r.history) # [<Response [301]>]

Python requests中:GET、OPTIONS、POST、PUT、PATCH 或 DELETE请求是默认是不会返回301、302状态码,HEAD请求则会直接返回重定向的状态码。

不过,在HEAD请求的时候,也可以通过设置参数allow_redirects=True,来启用重定向:

r = requests.head('http://github.com/', allow_redirects=True)

print(r.url) # 'https://github.com/'

print(r.history) # [<Response [301]>]

文档地址:

快速入门:https://requests.readthedocs.io/en/latest/user/quickstart/

Response Status Codes章节:https://requests.readthedocs.io/en/latest/user/quickstart/#response-status-codes

Redirection and History章节:https://requests.readthedocs.io/en/latest/user/quickstart/#redirection-and-history

相关文章

关于Python requests或者是Python爬虫的相关内容推荐:

python模块requests参数stream

python requests请求之timeout参数

Python爬虫timeout以及retrying的使用

Python使用 pytesseract 进行图片识别

给TA打赏
共{{data.count}}人
人已打赏
PycharmPython笔记

Pycharm批量添加引号

2023-3-27 22:56:15

Python字典Python笔记

Python字典按照值(value)的大小进行排序方法

2023-5-10 19:51:44

WordPress网站建设宣传图片
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
展开目录