反爬与网页抓取实战
2 min read|能直连就别绕路——抓取的第一原则是节制与合法。
抓取技术很容易被讲成「怎么绕过封锁」,但我更想说另一件事:大多数抓取不需要对抗,只需要耐心。
一、动手前先看规矩
抓之前先看两样东西:robots.txt 和站点条款。这不是形式主义——它决定了你能抓什么、以什么频率抓。
个人留档、公开信息、低频访问,和批量采集、商业利用、高频请求,是性质完全不同的两件事。
二、三个层级,从最轻的开始
- 直连:能用普通请求拿到内容,就用普通请求。绝大多数页面属于这一层。
- 浏览器渲染:内容由 JS 动态生成时才需要——代价是慢、重。
- 对抗反爬:只有在合法且必要的前提下才考虑,而且要做好失败的心理准备。
顺序不能反。 一上来就上重型工具,是新手最常犯的错。
三、节制策略
- 间隔:请求之间留出时间,别把对方当靶子;
- 并发:默认单线程,确认没问题再谈并发;
- 退避:撞到 429 或封禁,先退后重试,别硬顶。
被限流不是意外,是提醒你频率不对。
四、被挡住的两种真实处置
- 换入口:有官方 API、RSS、公开数据源的,优先走官方通道;
- 放弃:没有合规入口、又拿不到许可的,就停在门口——这不是失败,这是边界。
五、落盘与可复现
抓下来的东西要能复现:记录时间、来源 URL、抓取方式、原始响应。否则过两天你自己都说不清这份数据是什么时候、怎么来的。
可复现,是数据能用可信的前提。