【笔记】Python3的requests包

前言

Python3的requests包学习笔记

支持的请求方式

  • GET:获取资源
  • POST:传输实体主体
  • PUT:传输文件
  • HEAD:获取响应报文首部
  • DELETE:删除文件
  • OPTIONS:查询支持的方法
  • TRACE:追踪路径
  • CONNECT:要求用隧道协议连接代理
  • LINK:建立和资源之间的连接
  • UNLINK:断开连接关系

返回的对象的属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 获取响应正文
response.text

// 获取响应正文(以二进制方式)
response.content

// 获取/修改响应编码
response.encoding
response.encoding=

// 获取响应状态码
response.status_code

// 获取响应头
response.headers



// 获取请求URL
response.url

// 获取请求头
request.headers


// 获取历史响应(查看重定向之前的响应)
response.history

// 获取Cookies信息
response.cookies



// json格式字符串转换成python字典
response.json()

// 原始套接字响应
response.raw/.raw.read



// 抛出异常
response.raise_for_status()



// 身份验证
response.auth=

// 解析连接字头
response.links[]

发送请求

<url>:请求地址

1
2
3
4
5
6
7
8
import requests

response = requests.get("<url>")
# response = requests.post("<url>")
# response = requests.put("<url>")
# response = requests.head("<url>")
# response = requests.delete("<url>")
# response = requests.options("<url>")

设置请求头

1
2
3
4
import requests

headers = {"User-Agent":""}
response = requests.get(url="<url>", headers=headers)

设置超时时间

<num>:超时时间,单位秒

1
2
3
4
5
6
import requests

try:
response = requests.get(url="<url>", timeout=<num>)
except Exception as e:
print(e)

传递参数

Get传递参数

1
2
3
4
import requests

params = {"key":"value"}
response = requests.get(url="<url>", params=params)

POST传递参数

1
2
3
4
import requests

data = {"key":"value"}
response = requests.post(url="<url>", data=data)

上传文件

<file>:文件路径

1
2
3
4
import requests

files = {"key":open("<file>", "rb")}
response = requests.post(url="<url>", files=files)

不允许自动重定向

  • 默认为允许重定向
  • 通过history属性可以查看历史响应
1
2
3
4
5
6
7
8
import requests

response = requests.post(url="<url>")
#response = requests.post(url="<url>", allow_redirects=True)
response.history

response = requests.post(url="<url>", allow_redirects=False)
response.history

设置Cookie信息

1
2
3
4
import requests

cookies = {"key":"value"}
response = requests.get(url="<url>", cookies=cookies)

将二进制响应写入文件

<url>:请求URL
<src>:文件存储路径

1
2
3
response = requests.get("<url>").content
with open("<src>", "wb") as f:
f.write(response)

完成

参考文献

哔哩哔哩——千锋教育网络安全学院