Requests
Requests是一个开源的Python库,主要用于发送HTTP请求。
简介
时间轴
安装
使用pip安装:
pip install requests
快速入门
第一个程序
import requests
r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
print(r.status_code) # 200
print(r.headers['content-type']) # 'application/json; charset=utf8'
print(r.encoding) # 'utf-8'
print(r.content)
了解更多 >> Requests 文档
添加 HTTP 头部
如果你想为请求添加 HTTP 头部,只要简单地传递一个字典给headers参数就可以了。
import requests
url = 'https://www.baidu.com'
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get(url, headers=headers)
传递URL参数
传递URL参数,可以传递一个字典给参数params,Requests可以使用字典值生成相应url,如想传递 key1=value1 和 key2=value2 到 httpbin.org/get代码如下:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r2 = requests.get("http://baidu.com/get", params=payload)
print(r2.url)
#http://baidu.com/get?key1=value1&key2=value2
发送请求
Requests功能主要通过下面7中方法,它们都返回Response对象的一个实例。
方法 | 描述 | 参数 |
---|---|---|
get | 发送GET请求 | url, params, \*\*kwargs |
post | 发送POST请求 | url, data, json, \*\*kwargs |
put | 发送PUT请求 | url, data, json, \*\*kwargs |
delete | 发送DELETE请求 | url, \*\*kwargs |
head | 发送HEAD请求 | url, \*\*kwargs |
patch | 发送HEAD请求 | url, data, json, \*\*kwargs |
request | 构造和发送请求 | method, url, params, data, json, headers, cookies, files, auth, timeout, allow_redirects, proxies, verify, stream, cert |
示例:
r = requests.post('http://httpbin.org/post', data = {'key':'value'})
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
了解更多 >> Requests API文档:主要接口
Response对象
Response对象包含服务器对一个HTTP请求的的响应。 示例中的r:
r = requests.get('https://www.baidu.com')
属性与方法 | 描述 | 示例 |
---|---|---|
text | str类型(Unicode编码)响应内容 | r.text |
content | 二进制类型响应内容 | r.content |
raw | 原始套接字响应内容 | r.raw |
status_code | 响应的状态码 | r.status_code |
ok | 如果status_code小于400返回Ture | r.ok |
raise_for_status | ||
request | 响应对应的请求 | r.request |
headers | 响应头部 | r.headers |
url | 响应的最终请求地址 | r.url |
apparent_encoding | 响应编码类型(chardet检测) | r.apparent_encoding |
encoding | r.encoding | |
json() | JSON解码器 | r.json() |
close() | ||
cookies | ||
elapsed | ||
history | ||
is_permanent_redirect | ||
is_redirect | ||
iter_content | ||
iter_lines | ||
links | ||
next | ||
reason |
了解更多 >> API文档:Response对象
资源
官网
- Requests 官网:https://requests.readthedocs.io/
- Requests 文档:https://requests.readthedocs.io/
- Requests 源代码:https://github.com/psf/requests