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对象


资源

官网

网站