python http请求工具Requests

本文介绍Python HTTP请求库Requests的基本使用方法,包括安装、发送GET/POST等请求、解析响应内容及高级特性。通过实例演示了如何封装参数、处理JSON响应,并提供了设置超时时间等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python http请求利器Requests

只涉及一些常用的方法,一些高级特性查看尾部链接

安装
pip install requests

发送请求

#r 是response对象
 r = requests.get('https://github.com/timeline.json')#get
 r = requests.post("http://httpbin.org/post") #post
 r = requests.put("http://httpbin.org/put") #put
 r = requests.delete("http://httpbin.org/delete")#dele
 r = requests.head("http://httpbin.org/get")#head
 r = requests.options("http://httpbin.org/get")#options
响应内容的解析
r = requests.get('https://github.com/timeline.json')
r.text
#返回结果
#u'[{"repository":{"open_issues":0,"url":"https://github.com/...
二进制响应内容

r.content

b'[{"repository":{"open_issues":0,"url":"https://github.com/...
# 例如,以请求返回的二进制数据创建一张图片,你可以使用如下代码:
i = Image.open(BytesIO(r.content))
JSON 响应内容
r.json()
#返回内容
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
#
需要注意的是,成功调用 r.json() 并**不**意味着响应的成功。有的服务器会在失败的响应中包含一个 JSON 对象(比如 HTTP 500 的错误细节)。这种 JSON 会被解码返回。要检查请求是否成功,请使用 r.raise_for_status() 或者检查 r.status_code 是否和你的期望相同。
进阶
#get方法访问的时候的参数封装 可以使用一个字典类型封装参数 
#这样的 http://httpbin.org/get?key2=value2&key1=value1
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)

#也可以接受一个列表
 #http://httpbin.org/get?key1=value1&key2=value2&key2=value3
 payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
带参数 post请求
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
#如果有请求的参数当中包含 json数组
payload = (('key1', 'value1'), ('key1', 'value2'))
请求体:
{
  ...
  "form": {
    "key1": [
      "value1",
      "value2"
    ]
  },
  ...
}
检测响应的状态码
r.status_code
#响应的异常抛出 code是200 则为none
r.raise_for_status()
设置超时时间 如果不设置超时时间则有可能会永远得不到返回
requests.get('http://github.com', timeout=0.001)
可以参考官方文档

官方文档
高级特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值