Python库之requests的简介、安装、使用方法详细攻略
一、requests
库简介
requests
是一个Python第三方库,用于发送HTTP请求。它由Kenneth Reitz开发,以其简洁的API和强大的功能而广受好评。requests
库允许你发送各种HTTP请求,包括GET、POST、PUT、DELETE等,并且支持HTTP连接保持、连接池、会话等高级功能。
二、安装requests
库
在安装requests
库之前,请确保你的计算机上已经安装了Python环境。你可以通过以下命令来安装requests
:
pip install requests
如果你使用的是Python的虚拟环境,确保你已经激活了相应的虚拟环境,然后再执行上述命令。
三、使用方法
3.1 基本用法
3.1.1 GET请求
import requests
# 发送GET请求
response = requests.get('https://www.example.com')
# 检查请求是否成功
if response.status_code == 200:
print(response.text)
else:
print("请求失败,状态码:", response.status_code)
3.1.2 POST请求
# 发送POST请求
response = requests.post('https://www.example.com/submit', data={'key1': 'value1', 'key2': 'value2'})
# 访问响应内容
print(response.text)
3.2 高级用法
3.2.1 持久连接
# 使用Session对象来维持持久连接
with requests.Session() as session:
session.get('https://www.example.com')
session.post('https://www.example.com/login', data={'username': 'user', 'password': 'pass'})
3.2.2 响应内容处理
requests
库提供了多种方法来处理响应内容:
response.text
: 响应的文本内容(默认编码)。response.json()
: 将响应内容解析为JSON格式。response.content
: 响应的二进制内容。
3.2.3 异常处理
try:
response = requests.get('https://www.example.com', timeout=0.01)
except requests.exceptions.Timeout:
print("请求超时!")
except requests.exceptions.RequestException as e:
print("请求出错:", e)
3.2.4 请求头和认证
# 设置请求头
headers = {
'User-Agent': 'my-app/0.0.1',
'Accept': 'application/json'
}
# 发送带有请求头的GET请求
response = requests.get('https://www.example.com', headers=headers)
# HTTP基本认证
response = requests.get('https://www.example.com', auth=('user', 'pass'))
3.2.5 文件上传
# 上传文件
files = {'file': open('report.xls', 'rb')}
response = requests.post('https://www.example.com/upload', files=files)
3.2.6 流式上传
# 流式上传大文件
with open('helloworld.txt', 'rb') as f:
response = requests.post('https://www.example.com/upload', data={'file': f})
3.2.7 多部分文件上传
# 多部分文件上传
files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel')}
response = requests.post('https://www.example.com/upload', files=files)
3.2.8 会话(Cookies)
# 使用会话保持Cookies
s = requests.Session()
s.get('https://www.example.com/login', params={'user': 'user', 'pass': 'pass'})
# 之后的请求都会保持会话
s.post('https://www.example.com/submit', data={'key': 'value'})
3.2.9 代理
# 设置代理
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.11:1080',
}
response = requests.get('https://www.example.com', proxies=proxies)
3.3 总结
requests
库是Python中处理HTTP请求的强大工具,它以其简洁的API和强大的功能而广受好评。通过上述介绍,你应该已经对requests
库的基本使用和一些高级用法有了较为全面的了解。在实际开发中,你可以根据需要灵活使用requests
库的各种功能。
如果你对requests
库有更深入的需求,或者想要了解更多高级用法,可以访问requests
官方文档,获取更多信息。