kp-001

爬虫全景与发展简史

入门 ≈ 20 分钟 全景简史数据采集数据挖掘

本文基于模型知识整理,建议核对官方文档(见 参考资料)。

一句话定义

网络爬虫是按照既定规则自动、批量地获取网络数据的程序;它是数据挖掘管线的「燃料供应端」。

为什么重要

数据挖掘的一切结论都建立在数据之上,而公开互联网是最大的免费数据源。没有稳定、合规、可持续的采集能力,后续所有分析都是无米之炊。理解全景能帮你判断:一个需求到底该用 50 行脚本解决,还是要上一整套工程框架。

前置知识

无(本篇为零起点起点)。建议同时具备 Python 基础语法的概念级了解。

核心概念

  • 定向爬虫:围绕明确目标(某网站的商品、评论)设计,小而精。
  • 通用爬虫:如搜索引擎蜘蛛,广度优先遍历海量 URL,讲究抓取礼仪。
  • 解析:把 HTML/JSON 变成结构化数据(字段化)。
  • 调度与去重:决定「下一个抓谁、哪些抓过」。
  • 反爬与对抗:目标方控制访问,采集方在合规前提下的工程应对。
  • 数据管线:采集 → 清洗 → 存储 → 分析 → 报告。

原理与机制

爬虫的最小闭环由四步组成,任何框架都是这个闭环的工程化放大:

URL 队列 → 下载器(HTTP 请求) → 解析器(抽取字段+新URL) → 存储
              ↑____________________ 新 URL 回填队列 __________|

图示与公式

历史脉络(模型知识整理,供定位「我们现在在哪」):

阶段时间标志
起源1993MIT Wanderer 统计 Web 规模
搜索引擎爬虫时代1994–2005WebCrawler、Google PageRank 依赖大规模抓取
采集脚本时代2005–2015Python requests + BeautifulSoup 普及,商业数据采集兴起
框架工程时代2008 至今Scrapy(2008 开源)确立「框架化爬虫」范式
动态对抗时代2015 至今SPA 普及、无头浏览器、风控与指纹
智能抽取时代2023 至今LLM 辅助字段抽取,采集与解析边界重构

实例或案例

电商运营想跟踪 200 个竞品 SKU 的价格:这是典型定向爬虫场景——不需要搜索引擎级的遍历,只需要「列表页翻页 + 详情页字段 + 定时调度」,最终产出的时序价格表直接支撑定价决策(对应 kp-027)。

常见误区

  • 误区一:爬虫 = 黑客技术。 爬虫本质是 HTTP 客户端的自动化,浏览器每天都在做同样的事;区别在规模、频率与用途,以及是否越过合规边界(见 kp-004)。
  • 误区二:会调库就懂爬虫。 库只是下载器和解析器的封装;站点一变(动态渲染、接口加密、频控),不懂 HTTP 与渲染原理的人立刻无从下手。
  • 误区三:先学框架。 不理解 kp-002/kp-003 的底层,Scrapy 的中间件、管道会像黑魔法。

自测题

  1. 定向爬虫与通用爬虫的核心差异是什么?

答:目标范围与策略——定向爬虫围绕固定站点做字段级抽取,通用爬虫为覆盖面做全站遍历,二者对队列、去重、礼仪的要求不同。

  1. 爬虫在数据挖掘管线中处于哪个位置?

答:最上游的数据供给端,决定后续清洗与分析的数据覆盖与质量上限。

  1. 2015 年前后爬虫技术的分水岭是什么?

答:SPA(单页应用)普及导致「拿 HTML 就有数据」失效,浏览器自动化与接口分析成为主流。

与其他知识点的关系

kp-002 讲下载器的底层协议;kp-004 是一切动手前的红线;kp-024 讲采集完成后如何进入挖掘;本篇是其余 36 篇的地图。

延伸阅读

Scrapy 官方文档的 FAQ 一节(对「为什么需要框架」回答得最好);本库 kp-004(合规边界)。

相关知识点

学习进度