Bootstrap

Python库之requests的简介、安装、使用方法详细攻略

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官方文档,获取更多信息。

;