术语表
49 个核心概念,按项目归类。
项目一 初识动态网页数据采集与预处理
动态网页 Dynamic Web Page
内容由 JavaScript 异步加载或服务端渲染后生成的网页,直接抓 HTML 往往拿不到完整数据。
静态网页 Static Web Page
内容固定写在 HTML 里,请求一次就能拿到全部内容的网页。
结构化数据 Structured Data
有固定字段与类型的数据,如数据库表、CSV。
半结构化数据 Semi-structured Data
有一定结构但不严格,如 JSON、XML、HTML。
非结构化数据 Unstructured Data
没有固定结构的数据,如文本、图片、音视频。
数据采集 Data Collection
把分散在各处的数据抓取、汇总到统一存储的过程。
数据预处理 Data Preprocessing
对原始数据做清洗、转换、规整,使其可用于分析。
ETL Extract-Transform-Load
抽取—转换—加载,数据预处理的经典三步。
PyCharm PyCharm
JetBrains 出品的 Python IDE,本项目用它写爬虫与数据分析代码。
项目二 动态网页数据采集
HTTP 请求 HTTP Request
浏览器向服务器索要资源的动作,由方法、URL、请求头、请求体组成。
GET / POST GET / POST
GET 把参数拼在 URL 上取数据;POST 把数据放在请求体里提交。
请求头 Headers
随请求发送的附加信息,User-Agent、Cookie、Referer 都在这里。
User-Agent User-Agent
标识客户端身份与浏览器的字符串,爬虫常需要伪装它。
状态码 Status Code
服务器返回的处理结果:200 成功、403 拒绝、404 不存在、500 服务器错误。
URL 编码 URL Encoding
把中文、空格等字符转成 %XX 形式,中文参数必须编码。
urllib urllib
Python 标准库的 HTTP 模块,包含 request、error、parse 三个子模块。
requests requests
最常用的第三方 HTTP 库,接口简洁,支持会话、参数、超时。
超时 Timeout
请求等待响应的最长时间,不设置可能导致程序卡死。
会话 Session
requests.Session 保持 Cookie,适合需要登录态的连续请求。
robots.txt robots.txt
网站声明爬虫可访问范围的协议文件,采集前应查看。
项目三 动态网页数据解析
HTML HTML
网页的标记语言,由标签、属性、文本构成树形结构。
DOM DOM
把 HTML 解析成的节点树,XPath 与 BS4 都在树上定位。
XPath XPath
在 XML/HTML 树中定位节点的路径语言,支持层级、属性、位置、文本。
lxml lxml
高性能 HTML/XML 解析库,配合 XPath 使用。
etree etree
lxml 提供的解析接口,html = etree.HTML(text) 生成可查询对象。
BeautifulSoup BeautifulSoup
容错的 HTML 解析库,提供 find、select、get_text 等方法。
选择器 Selector
CSS 选择器,如 div.news > a,BS4 的 select 支持。
节点属性 Attribute
标签上的键值对,如 href、src、class,是提取链接与图片地址的关键。
项目四 基于框架实现动态网页数据采集与存储
Scrapy Scrapy
异步爬虫框架,把采集、解析、存储组织成工程。
Spider Spider
Scrapy 的爬虫类,定义起始 URL 与解析逻辑。
Item Item
Scrapy 中定义要抓取的字段结构。
Pipeline Pipeline
Scrapy 的数据管道,负责清洗、去重、写入文件或数据库。
中间件 Middleware
Scrapy 中拦截请求/响应的钩子,常用来换代理、加请求头。
反爬 Anti-crawling
网站限制爬虫的手段:频率限制、验证码、UA 校验、加密参数。
项目五 动态网页访问日志数据采集
Flume Apache Flume
分布式日志采集工具,Agent 由 Source、Channel、Sink 组成。
Source / Channel / Sink Flume Agent
数据从 Source 进来、经 Channel 缓存、由 Sink 写出。
拦截器 Interceptor
Flume 中对事件做加工、过滤、加时间戳的插件。
Kafka Apache Kafka
分布式消息队列,用 topic 组织消息,支持高吞吐的生产与消费。
Topic Topic
Kafka 中消息的分类单位。
生产者 / 消费者 Producer / Consumer
生产者写消息到 topic,消费者从 topic 读消息。
访问日志 Access Log
服务器记录的每次请求信息:IP、时间、URL、状态码、UA 等。
项目六 动态网页数据预处理
pandas pandas
Python 的数据分析库,核心是 Series 与 DataFrame。
DataFrame DataFrame
带行列标签的二维数据表,pandas 的核心结构。
缺失值 Missing Value
数据中的空值(NaN/None),需填充或删除。
去重 Deduplication
删除重复记录,pandas 用 drop_duplicates。
分组聚合 Group By Aggregate
按某列分组后做求和、均值、计数等统计。
Pig Apache Pig
Hadoop 上的批量数据处理工具,用 Pig Latin 描述数据流。
Pig Latin Pig Latin
Pig 的脚本语言:LOAD、FILTER、GROUP、FOREACH、STORE。
CSV CSV
逗号分隔的表格文本,是采集结果最常见的落地格式。