TL;DR
- 爬虫发现并重新访问 URLs;提取器从选定页面提取字段或内容。一个系统可以执行这两项工作。
- 爬取是一个图形和调度问题。抓取是一个解析、标准化和数据质量问题。
- 一个没有详细提取的爬虫可以维护一个 URL 清单;一个没有爬取的提取器可以监控已知页面列表。
- 将发现、获取、提取和存储分开,让团队能够在不重复整个爬取的情况下修复损坏的解析器。
- 这两个名字都不授予访问权限:定义范围,尊重限制,并保持每条记录的来源。
什么是网络抓取器和网络爬虫之间的区别?
网络爬虫遵循链接以查找页面,而网络提取器将选定页面转换为可用数据。这个区别描述了一种责任,而不是编程语言或产品类别。一个应用程序可以发现页面,获取它们,解析字段,并按计划重新访问它们。称其为爬虫或提取器取决于您讨论的工作。
考虑一个在线目录。发现从类别页面或网站地图开始,找到产品 URL。提取读取每个产品页面并记录名称、标价、货币、库存消息、源 URL 和观察时间。即使产品解析器出现故障,发现也可以成功。提取可以成功地针对手动策划的 URL 列表,即使没有爬虫存在。这些独立的故障模式值得单独的度量。
URL 发现指南有助于定义有界源集。为了管理页面获取,Nstdata Crawl可以针对您所需的特定页面和输出字段进行测试;它并不消除发现范围或后续验证。
| 问题 | 爬虫 | 提取器 |
|---|---|---|
| 主要输入 | 种子、网站地图、链接 | 已知 URL 或获取的内容 |
| 主要输出 | URL 边界和获取状态 | 结构化记录或清理文本 |
| 核心决策 | 下一个页面是哪一个? | 这个页面说了什么? |
| 典型故障 | 丢失页面、循环、重复 | 缺失字段、错误值、过时选择器 |
| 关键指标 | 所有合格页面的覆盖率 | 字段准确性和完整性 |
这些是责任,而不是严格的工具标签。RFC 9309 的机器人排除协议关注自动访问;其信号即使对系统推广为提取器时仍然重要,当该系统获取页面时。
爬虫如何发现和调度页面
爬虫从一个有界的种子集开始。它获取一个页面,提取合格链接,标准化 URL,去重,并将未见目标添加到边界。一个持久的边界记录规范化的 URL、源页面、发现时间、上次获取、重试状态和包含原因。如果没有这种状态,重启可能会重新访问相同页面或丢失整个分支。
范围比速度更重要。一个类别链接可能会进入过滤器、日历、查询变体、会话参数或无限翻页。在运行之前定义允许的主机、路径模式、查询参数、最大深度和每主机预算。一个 ?sort=price 的 URL 可能代表一个有用的独特视图;跟踪参数通常不是。将规范标签视为暗示,而不是无条件命令丢弃页面。
网站地图是有用的种子,而不是证明每个列出页面存在或是最新的。谷歌的网站地图文档解释了提交一个网站地图有助于发现,但并不保证爬取或索引。对于业务数据管道,将网站地图 URL 与受控链接遍历进行比较。发现的 URL 突然下降可能意味着重新设计、被阻止的获取或网站地图更改;这应该引发调查,而不是无声删除。





