requests爬虫三步:发请求(get()+params/headers)、取数据(text/content+编码/超时处理)、解析(BeautifulSoup+CSS选择器)。

用 requests 写爬虫,核心就三步:发请求、取数据、解析内容。它比 urllib 简洁得多,是入门首选。
怎么发一个基本请求
安装后导入,调用 requests.get() 就能获取网页源码:
- requests.get("https://example.com") 返回一个 Response 对象
- 用 .text 获取字符串形式的 HTML(适合含中文的页面)
- 用 .content 获取字节流(适合处理图片、PDF 或需要手动解码时)
- 记得检查 .status_code 是否为 200,避免请求失败却没察觉
带参数和 headers 的请求
很多网站会拦截默认 User-Agent,直接被拒。加上 headers 才像真实浏览器:
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
- 参数用 params 字典传入,比如 params={"page": 1, "size": 10} 会自动拼成 ?page=1&size=10
- headers 至少设 {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."}
- 登录类站点可能还需 cookies 或 session 保持状态,用 requests.Session() 更方便
处理常见响应问题
不是所有响应都顺利。实际写爬虫时,这些细节常决定成败:
立即学习“Python免费学习笔记(深入)”;
- 中文乱码?先看 response.encoding,不对就手动设成 response.encoding = "utf-8" 或 response.apparent_encoding
- 超时卡住?加 timeout=10 参数,避免程序一直等
- 遇到重定向(如跳转登录页)?默认会自动跟随,不想跟就加 allow_redirects=False
- HTTPS 报证书错误?临时加 verify=False(仅测试用,上线务必删掉)
配合 BeautifulSoup 解析 HTML
requests 负责拿数据,解析交给 BeautifulSoup 更直观:
- 安装:pip install beautifulsoup4
- 解析示例:soup = BeautifulSoup(response.text, "html.parser")
- 常用操作:soup.find("title")、soup.select(".item a")(CSS 选择器)
- 别忘了用 .get_text() 提纯文字,去掉标签干扰

















