跳至正文
中文
立即开始

网络爬虫

网络爬虫是一种自动程序,会沿链接发现并获取网页,通常用于搜索引擎建立索引、网站审计或数据采集。

文章目录(8 个章节)

网络爬虫的工作原理

网络爬虫从一个或多个种子 URL 开始。它会获取每个网页、解析 HTML、提取链接,并将尚未访问的 URL 加入名为“待访问队列”(crawl frontier)的队列。调度器根据域名、优先级和延迟等规则选择下一个 URL。

种子 URL → 获取网页 → 解析链接 → 新 URL 入队 → 重复

爬虫可以保存网页内容、响应状态、链接关系,以及标题或最后修改日期等元数据。搜索引擎使用这些信息构建索引。网站所有者也会运行爬虫,查找失效链接和缺失网页。

网络爬虫与网页采集工具

爬虫负责发现网页。网页采集则从网页中提取指定信息。

网络爬虫 网页采集工具
主要任务 发现并获取网页 提取特定字段
典型输入 种子 URL 和爬虫规则 已知网页或网页类型
典型输出 网页、URL 和链接关系图 结构化记录

同一个应用可以兼具两种功能。例如,爬虫可以找出商店中的所有商品页面,采集工具再提取每件商品的名称、价格和库存情况。

爬虫控制

配置合理的爬虫会限制访问范围和发送请求的速度:

  • **范围:**按主机名、路径、文件类型或链接深度限制访问范围。
  • **网站指令:**读取 robots.txt,避开禁止访问的路径。这些规则只用于提供指引,并非访问控制机制。
  • **请求速度:**为每个目标主机设置并发数和请求间隔,遵守限速,并在收到 429 响应后遵循 Retry-After。
  • **重复内容处理:**规范化 URL、记录已访问的 URL,并过滤或限制查询参数,防止陷入爬虫陷阱。获取网页后使用内容哈希,避免重复处理相同内容。
  • **渲染:**只有网页需要 JavaScript 时才使用无头浏览器,因为浏览器比基本的 HTTP 客户端消耗更多内存和带宽。

代理的作用

代理会改变网站看到的来源 IP。爬虫可以借助代理,在获得授权的情况下检查特定地区的公开内容,也可以让不同的数据采集任务使用不同的地址。

轮换代理可以将请求分散到多个 IP,但不会减少网站承受的总负载。限速应覆盖整个爬虫任务,而不能只按单个代理执行。更换 IP 也无法解决请求头不符合真实浏览器特征、浏览器指纹异常或请求模式过于激进等问题,这些问题仍可能触发反爬检测。

常见问题

网络爬虫有什么用途?

网络爬虫用于搜索引擎建立索引、网站审计、内容监测,以及发现需要采集数据的网页。爬虫的输出也可以交给采集工具,由后者提取结构化字段。

网络爬虫与网页采集工具相同吗?

不同。爬虫负责发现并获取网页,采集工具则从这些网页中提取指定数据。许多数据采集系统会结合这两种功能。

使用网络爬虫合法吗?

这取决于网站、数据、司法管辖区和使用目的。应遵守网站条款和 robots.txt,不得绕过访问控制措施,未经授权不得采集私密或受限信息。

相关术语

查看全部术语