requests发请求核心三步:发请求、看响应、取数据;支持get/post、参数与头定制、异常超时处理及session会话管理。

用 requests 发网络请求,核心就三步:发请求、看响应、取数据。它比原生 urllib 简洁得多,是 Python 网络交互的首选工具。
基础 GET 请求:获取网页或 API 数据
最常用的是 requests.get()。比如请求一个公开 API:
- 带 URL 就能发请求:
res = requests.get("https://httpbin.org/get") - 检查是否成功:
res.status_code == 200(不是只看有没有报错) - 拿到响应文本:
res.text(字符串)或res.json()(自动解析 JSON,若响应是合法 JSON) - 传参数更简单:用
params字典,requests.get("https://httpbin.org/get", params={"key": "value"})会自动拼成?key=value
带参数和头的 POST 请求:模拟表单提交或调用接口
向服务器发送数据,常用 requests.post():
- 传表单数据用
data参数:requests.post(url, data={"user": "alice", "pwd": "123"}) - 传 JSON 数据用
json参数(自动设Content-Type: application/json并序列化):requests.post(url, json={"name": "Bob"}) - 自定义请求头(如伪装浏览器、加认证):
headers={"User-Agent": "Mozilla/5.0...", "Authorization": "Bearer xxx"}
处理异常与超时:别让程序卡死或崩溃
网络不稳定,必须做防护:
立即学习“Python免费学习笔记(深入)”;
- 加
timeout参数,单位秒,例如requests.get(url, timeout=5),避免无限等待 - 捕获常见异常:
requests.exceptions.Timeout、requests.exceptions.ConnectionError、requests.exceptions.HTTPError - 推荐写法:
try...except包住请求,失败时给提示或重试,不要让整个程序崩掉
带 Cookie 和 Session:维持登录态抓多页内容
需要保持状态(比如登录后访问个人页面),用 requests.Session():
- 创建 session 对象:
s = requests.Session() - 先登录(POST 账号密码),session 自动保存返回的 Cookie
- 后续请求复用该 session:
s.get("https://example.com/profile"),自动带上登录凭证 - 适合爬取需登录的网站,或调用一连串关联接口
不复杂但容易忽略细节。把状态码、超时、异常、会话管理这四点盯住,requests 就能稳稳干活。










