⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Python 网络请求 requests

学习用requests库发送HTTP请求 · 难度:高级 · +15XP

Python 网络请求 requests

requests 是 Python 中用于发送 HTTP 请求的第三方库,被称为"HTTP for Humans"。它简洁直观的 API 设计使得发送网络请求变得极其容易。requests 底层基于 urllib3,提供了连接池、Keep-Alive、SSL 验证等高级功能。

安装与基本使用

# pip install requests
import requests

# GET 请求 r = requests.get('https://httpbin.org/get') print(r.status_code) # 200 print(r.text) # 响应文本

# POST 请求 r = requests.post('https://httpbin.org/post', data={'key': 'value'}) # PUT, DELETE, HEAD, OPTIONS 请求同理 r = requests.put('https://httpbin.org/put') r = requests.delete('https://httpbin.org/delete')

传递参数与请求体

import requests

# URL 查询参数 payload = {'page': 2, 'count': 25} r = requests.get('https://httpbin.org/get', params=payload)

# 表单数据 r = requests.post('https://httpbin.org/post', data={'username': 'admin', 'password': 'pass'})

# 发送 JSON 数据 r = requests.post('https://httpbin.org/post', json={'name': 'Alice', 'age': 25})

# 文件上传 files = {'file': open('report.txt', 'rb')} r = requests.post('https://httpbin.org/post', files=files)

响应内容处理

import requests

r = requests.get('https://api.github.com') print(r.status_code) # 状态码 print(r.headers) # 响应头字典 print(r.headers['Content-Type']) print(r.encoding) # 编码 print(r.text) # 文本响应 print(r.content) # 二进制响应 print(r.json()) # JSON 响应 (自动解析) print(r.url) # 最终 URL (可能经过重定向) print(r.history) # 重定向历史 print(r.elapsed) # 请求耗时

会话对象与持久连接

import requests

# Session 对象可以保持 cookie 和连接池 session = requests.Session()

# 设置默认请求头 session.headers.update({'User-Agent': 'MyApp/1.0'})

# 登录 login_data = {'username': 'user', 'password': 'pass'} session.post('https://example.com/login', data=login_data)

# 后续请求自动携带 cookie r = session.get('https://example.com/dashboard')

响应对象属性速查表

属性/方法说明
r.status_codeHTTP 状态码
r.textUnicode 文本响应
r.content二进制响应 (bytes)
r.json()将 JSON 响应解析为字典
r.headers响应头字典
r.cookies响应 cookie
r.encoding响应编码 (可修改)
r.raise_for_status()检查 HTTP 错误并抛出异常
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 152 篇
0 完成
🔥 0