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 才像真实浏览器:
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本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() 提纯文字,去掉标签干扰









