写合规的采集脚本:目标结构分析、请求节流、失败重试、数据落地,先讲清边界。
公开数据整理、价格监测、内容聚合、研究用数据采集。
帮我写一个网页采集脚本。前提:只采集公开可访问数据,遵守目标站 robots 与服务条款,不绕过登录与验证码,控制频率不影响对方服务。 【目标】{{目标页面}} 【字段】{{要采的字段}} 【量级】{{数据量}} 【技术栈】{{技术栈}} 输出: 一、合规检查清单(先做):robots 允许范围、是否有明确禁止采集的条款、是否含个人信息、是否需要授权。任一项不满足就停下来说明。 二、结构分析思路:怎么在浏览器里定位字段(选择器优先级:语义属性 > 稳定 class > 结构路径),说明为什么不用动态生成的 hash class。 三、脚本({{技术栈}}): - 请求:带正常 UA、Referer,超时设置,随机但克制的间隔(1-3 秒) - 解析:字段解析函数,缺失字段用 None 不用抛异常 - 分页:翻页终止条件(空列表 / 无下一页 / 达到上限) - 重试:3 次指数退避,记录失败 URL - 断点续采:已采 URL 落盘,重跑跳过 - 落盘:CSV(utf-8-sig)或 SQLite,说明为什么选它 - 日志:每 50 条打印进度,失败的单独记录 四、字段清洗:价格去符号转数值、数量「1.2万」转整数、去首尾空白、统一时间格式。 五、{{数据量}} 下的稳定性建议:分批、可中断、失败可续、加锁防重复运行。 六、如果页面是 JS 渲染:给出替代思路(找接口 / 用无头浏览器),并说明资源消耗差异。 七、反爬应对的合规边界:明确哪些不能做(伪造登录态、破解验证码、高频请求、绕过付费墙)。 要求:不提供任何绕过访问控制的手段;脚本默认低频、可中断。
不能,绕过访问控制既违约也有法律风险。
降低频率、加缓存,不要用代理池硬刷。