您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python中requests如何使用
## 1. 什么是requests库
`requests`是Python中最流行的HTTP客户端库之一,以简洁优雅的API设计著称。它是对Python标准库`urllib`的封装,提供了更人性化的接口,支持HTTP连接保持、会话保持、文件上传、自动内容解码等高级功能。
主要特点:
- 支持HTTP/1.1和HTTPS
- 支持连接池和持久连接
- 支持文件上传(multipart/form-data)
- 自动解压响应内容
- 支持国际化域名和URL
- 支持会话和Cookie持久化
安装方式:
```bash
pip install requests
import requests
# 基本GET请求
response = requests.get('https://api.example.com/data')
# 带参数的GET请求
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://api.example.com/data', params=params)
# 获取响应内容
print(response.text) # 文本内容
print(response.json()) # JSON内容
print(response.status_code) # 状态码
# 基本POST请求
data = {'key': 'value'}
response = requests.post('https://api.example.com/post', data=data)
# 发送JSON数据
json_data = {'key': 'value'}
response = requests.post('https://api.example.com/post', json=json_data)
# 文件上传
files = {'file': open('report.xls', 'rb')}
response = requests.post('https://api.example.com/upload', files=files)
# PUT请求
response = requests.put('https://api.example.com/put', data={'key': 'value'})
# DELETE请求
response = requests.delete('https://api.example.com/delete')
# HEAD请求
response = requests.head('https://api.example.com/get')
# OPTIONS请求
response = requests.options('https://api.example.com/get')
headers = {
'User-Agent': 'Mozilla/5.0',
'Accept': 'application/json',
'Authorization': 'Bearer token123'
}
response = requests.get('https://api.example.com/data', headers=headers)
# 发送Cookie
cookies = {'key': 'value'}
response = requests.get('https://api.example.com/cookies', cookies=cookies)
# 接收Cookie
print(response.cookies['example_cookie_name'])
# 设置超时时间(秒)
try:
response = requests.get('https://api.example.com/data', timeout=3)
except requests.exceptions.Timeout:
print("请求超时")
# 使用Session对象保持会话
session = requests.Session()
# 会话会保持Cookie和连接
session.get('https://api.example.com/login', params={'user': 'name', 'pass': 'word'})
response = session.get('https://api.example.com/dashboard')
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
response = requests.get('https://api.example.com/data', proxies=proxies)
response = requests.get('https://api.example.com/data')
# 文本响应
print(response.text)
# 二进制响应
print(response.content)
# JSON响应
print(response.json())
# 原始响应
print(response.raw)
print(response.headers)
print(response.headers['Content-Type'])
if response.status_code == 200:
print("成功")
elif response.status_code == 404:
print("未找到")
try:
response = requests.get('https://api.example.com/data', timeout=5)
response.raise_for_status() # 如果状态码不是200,抛出HTTPError异常
except requests.exceptions.HTTPError as errh:
print("HTTP错误:", errh)
except requests.exceptions.ConnectionError as errc:
print("连接错误:", errc)
except requests.exceptions.Timeout as errt:
print("超时错误:", errt)
except requests.exceptions.RequestException as err:
print("请求异常:", err)
def get_weather(city):
url = f"https://api.weather.com/v1/cities/{city}/forecast"
response = requests.get(url)
return response.json()
weather_data = get_weather('beijing')
url = "https://example.com/bigfile.zip"
response = requests.get(url, stream=True)
with open('bigfile.zip', 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
login_data = {
'username': 'user123',
'password': 'pass123'
}
response = requests.post('https://example.com/login', data=login_data)
stream=True
requests库极大简化了Python中的HTTP请求处理,通过简洁的API实现了复杂的功能。无论是简单的网页抓取还是复杂的API交互,requests都能提供优雅的解决方案。掌握requests库是Python开发者必备的技能之一。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。