Python爬虫必备:requests模块完全指南
requests 是 Python 爬虫最常用的第三方库,简洁优雅的 API 让 HTTP 请求变得简单高效。本文将全面介绍 requests 的核心用法。
一、安装 requests
使用 pip 快速安装:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple二、基本使用
import requests
url = "https://www.baidu.com"
response = requests.get(url=url)三、响应内容详解
| |
|---|
response.text | |
response.content | |
response.status_code | |
response.headers | |
response.cookies | |
response.url | |
四、携带请求头
💡 为什么要携带请求头?
部分网站会检测请求头进行反爬,未携带正确请求头可能被拒绝访问。
import requests
url = 'https://www.baidu.com'
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
response = requests.get(url, headers=headers)五、携带请求参数
使用 params 参数传递查询字符串,用于数据筛选等场景。
import requests
kw = {'wd': 'java'}
response = requests.get('https://www.baidu.com/s', params=kw)六、GET 与 POST 请求
GET 请求
requests.get(url, params=data)参数使用 params
POST 请求
requests.post(url, data=data)参数使用 data
七、Cookie 处理
cookies = {"name": "value"}
requests.get(url, headers=headers, cookies=cookies)八、Session 会话管理
Session 可以跨请求保持 cookie,实现会话持久化。
import requests
session = requests.Session()
response = session.get('https://www.baidu.com')
# 获取cookie
cookies = requests.utils.dict_from_cookiejar(response.cookies)九、高级设置
🔄 重定向控制
requests.get(url, allow_redirects=False)False 禁止重定向,True 允许(默认)
🔒 SSL 证书验证
response = requests.get(url, verify=False)False 跳过证书验证,True 验证(默认)
⏱️ 超时设置
response = requests.get(url, timeout=3)单位:秒,超过指定时间抛出异常
🌐 代理设置
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080"
}
requests.get(url, proxies=proxies)十、请求重试机制
使用 retrying 模块实现自动重试:
# 安装:pip install retrying
from retrying import retry
@retry(stop_max_attempt_number=3)
defrequest_with_retry():
response = requests.get(url)
return response十一、POST 数据格式
表单数据
requests.post(url,
data={"kw": "python"})JSON 数据
requests.post(url,
json={"kw": "python"})📌 核心要点总结
✅ GET 请求用 params,POST 请求用 data/json
✅ 使用 Session 保持会话状态
✅ 设置 timeout 和 retry 提高稳定性
✅ 携带 User-Agent 模拟浏览器
✅ 代理 proxies 突破 IP 限制