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才不乱码)
基本上就这些。不复杂但容易忽略细节,动手试两三个真实页面,比看十篇教程都管用。