Python 网页爬取推荐 requests+BeautifulSoup 组合,需加 headers 防 403、手动设编码防乱码、用开发者工具精确定位标签,配合 fake_useragent 随机 UA、time.sleep 控频、检查 robots.txt,并以 UTF-8-SIG 编码保存 CSV/JSON。

用 Python 爬网页不难,关键在选对 工具 、避开反爬、处理好 编码 和结构。下面直接说实用步骤,不绕弯。
选对库:requests + BeautifulSoup 最适合新手
requests 负责发请求拿 HTML,BeautifulSoup 负责解析提取内容。不用 selenium(太重),也不推荐 urllib(写起来麻烦)。
- 安装命令:pip install requests beautifulsoup4
- requests.get()记得加 headers,否则很多网站直接返回 403(模拟 浏览器 访问)
- 遇到 中文乱码 ?先看响应头的response.encoding,不对就手动设为‘utf-8’ 或‘gbk’
定位数据:用开发者工具找对标签和属性
别猜!按 F12 打开浏览器开发者工具,右键目标文字 →“检查”,看它在哪层
、里,有没有 class 或 id。
- 用 soup.find(‘div’, class_=’title’) 比soup.select(‘.title’)更直观,初学建议优先用 find/find_all
- 如果 class 名带空格或动态变化(如class=”item active”),改用soup.find(‘div’, attrs={‘class’: re.compile(r’item’)}),配合 re 模块
- 表格数据常用 tr > td 路径,用 soup.select(‘table tr’) 逐行取再嵌套循环
应对简单反爬:基础防护三招够用
大多数小网站只做基础检测,不需要登录或跑 JS,这三步覆盖 90% 场景:
立即学习“Python 免费学习笔记(深入)”;
- 加随机 User-Agent:用 fake_useragent 库(pip install fake-useragent),每次请求换一个 UA
- 控制请求频率:time.sleep(1) 比狂刷强,既保护对方服务器,也防 IP 被临时封
- 检查 robots.txt:比如https://example.com/robots.txt,尊重网站规则是基本素养
保存结果:从列表到 CSV 或 JSON,一步到位
爬下来的数据别只 print,要存下来才真正有用。
- 结构简单(如标题 + 链接)→ 直接用 csv.writer 写入 CSV,Excel 能直接打开
- 含嵌套字段(如商品有价格、评分、评论数)→ 用 json.dump() 存为 JSON,方便后续用 pandas 分析
- 避免编码报错:open()时一定加encoding=’utf-8-sig’(Windows 下 Excel 才不乱码)
基本上就这些。不复杂但容易忽略细节,动手试两三个真实页面,比看十篇教程都管用。






























