爬虫就是互联网的数据搬运工——自动打开网页、提取数据、存成你要的格式。这一页从 requests 发第一个请求,讲到 Scrapy 工程化爬虫、aiohttp 并发提速。版本基线:requests 2.32.x、BeautifulSoup4 4.12.x、lxml 5.x、Scrapy 2.11.x、Selenium 4.x、Playwright 1.48.x、aiohttp 3.10.x——以官网最新稳定版为准。
| 库 | 版本基线 | 定位 |
|---|---|---|
| requests | 2.32.x | 最流行的 HTTP 库,发请求的瑞士军刀。 |
| BeautifulSoup4 | 4.12.x | HTML 解析,找标签提取文本,入门首选。 |
| lxml | 5.x | XML/HTML 解析,比 BS4 快,支持 XPath。 |
| Scrapy | 2.11.x | 爬虫界的工程队,异步高性能框架。 |
| Selenium | 4.x | 雇个真人帮你点浏览器,对付动态页面。 |
| Playwright | 1.48.x | 微软出品的现代自动化,比 Selenium 更快更稳。 |
| aiohttp | 3.10.x | 异步 HTTP,几百个请求并发飞。 |
| Pandas | 2.2.x | 数据清洗存储,to_csv/to_excel 一把梭。 |
本页目录
爬虫入门与法律道德
Intro to Web Scraping
requests 库基础
requests: The Swiss Army Knife
网页解析:BS4 / lxml / 正则
Parsing HTML
数据存储:CSV / JSON / MySQL
Storing Scraped Data
反爬与应对策略
Anti-Scraping & Countermeasures
Selenium 自动化
Selenium: Real Browser Automation
Playwright 现代自动化
Playwright: Faster & More Reliable
Scrapy 框架:爬虫界的工程队
Scrapy: The Industrial Framework
异步爬虫 aiohttp
aiohttp: 10x Faster
进阶与最佳实践
Best Practices
小结 & 自测题
爬虫的核心不是某个库,是流程:发请求、解析、存储、反爬应对。库会更新,思路不变。遮住答案答完这 5 题。
论爬虫学习心法
① 先跑通再优化:先用 requests+BS4 跑通一个站,再提速、再工程化。② 看 DevTools:F12 Network 是爬虫最好的朋友,所有答案都在里面。③ 慢就是快:礼貌爬,别被封,封一次重爬更慢。④ 法律红线别碰:个人信息、登录墙后数据、版权全文,碰都别碰。
1.(选型题)要爬 5 万条公开新闻,静态 HTML,选 requests+BS4、Selenium 还是 Scrapy?
查看答案
答案:Scrapy(或 aiohttp)。解析:静态 HTML 不用 Selenium;5 万条量大,Scrapy 异步并发+去重+流水线最合适;requests+BS4 串行太慢。
2.(概念题)为什么爬动态页面时 HTML 里找不到数据?
查看答案
答案:数据靠 JS 在浏览器里异步加载,requests 拿到的只是骨架 HTML。要么找后端 JSON 接口,要么用 Selenium/Playwright 等 JS 渲染完。
3.(概念题)爬了一半被封 IP,你会怎么排查?
查看答案
答案:先看状态码:403/429 是被限。降速、加随机间隔、换 UA、加代理。确认是不是频率太高触发了风控。
4.(代码题)用 aiohttp 爬 100 个 URL,怎么限制同时最多 10 个?
查看答案
答案:sem = asyncio.Semaphore(10),每个任务 async with sem: 里发请求,再 asyncio.gather(*tasks)。
5.(思考题)"爬虫写得好,牢饭吃到老"——哪些数据绝对不能爬?
查看答案
答案:个人信息(身份证/手机号/住址)、登录墙后数据、版权全文、robots.txt 明确 Disallow 的、给服务器造成压力的高频请求。爬之前先问"这数据公开吗?我爬了会损害谁?"
① 动手:用 requests+BS4 把豆瓣 Top250 爬下来存 CSV。
② 提速:把它改成 aiohttp 异步版,看提速多少。
③ 工程化:用 Scrapy 重写一遍,体会流水线。
④ 进阶:找个动态渲染的电商站,用 Playwright 爬。
记住:爬虫是工具,不是目的。爬数据是为了分析,别光顾着爬忘了用。
下一站:去 tech-python-ai.html,学怎么用 Python 做 AI 数据科学。
记住:爬虫写得好,牢饭吃到老。技术要过硬,法律更要守。
三个月学习路线
| 阶段 | 学什么 |
|---|---|
| 第1-2周 | requests + BS4,爬静态网页,存 CSV/JSON |
| 第3-4周 | lxml XPath、正则、JSON 接口,爬新闻站 |
| 第5-6周 | Selenium/Playwright,爬动态页面,模拟登录 |
| 第7-8周 | Scrapy 框架,写工程化爬虫,Pipeline 存数据库 |
| 第9-10周 | aiohttp 异步爬虫,并发提速 |
| 第11-12周 | 反爬应对、分布式、数据清洗,做个完整项目 |