☰分类导航

软件工程/爬虫与数据采集
课程进度 19% · 第2/6章第2/6章 · 标签 1/8
— 1 —

先约定采集范围

课程搜索的数据可以来自自家数据库、公开接口或获准采集的网页。优先使用结构化接口,能减少页面布局变化带来的故障。网页采集的目标是生成稳定、可追踪的课程记录,而不是抓取尽可能多的链接。本章以本站公开课程为范围,不访问登录后的私人内容。

例如本站课程的主键可以直接来自内容库,外部文档则需要来源地址与抓取策略。先用十篇固定样本验证标题、正文和删除语义,再扩到更多链接;否则数量扩大后,重复导航和错误页也会一起被放大。

— 2 —

设计采集流水线

把发现链接、调度、下载、正文提取、去重和入库拆开。每条记录保留原始 URL、业务主键、内容摘要、抓取时间和来源版本,出错时才能定位。下载成功也不代表正文有效:登录页、验证码页和错误提示可能返回正常状态码。

每阶段输出都应可检查。下载器保存响应状态,提取器报告正文是否为空,去重器标记重复依据,写入器记录业务ID与版本。这样一篇文章丢失时,能确认是没下载到、提取失败,还是被错误去重。

  • 发现:从课程目录或站点地图获取种子链接。
  • 下载:设置超时、大小上限与每站点并发限制。
  • 提取:优先选择正文容器,移除导航和广告。
  • 入库:按稳定主键更新,记录失败原因。