跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Web 数据管理期末复习指南:爬虫、分析与文本处理

涵盖网络爬虫基础与分类,解析正则、DOM 及工具如 Beautiful Soup 和 Scrapy。深入探讨反爬策略如 Robot 协议、验证码处理。讲解数据抽取包装器原理,包括分界符与树路径规则。涉及 Web 数据存储格式、预处理流程,以及文本预处理中的分词、向量化方法。介绍语言模型、词嵌入(Word2Vec)、文本分类模型(TextCNN)及 Token 化技术。最后简述 Web 图片数据的颜色、纹理与形状特征提取。适合期末复习与技术实战参考。

RefactorPro发布于 2026/4/6更新于 2026/8/2046 浏览
Web 数据管理期末复习指南:爬虫、分析与文本处理

第二章 网络爬虫

爬虫的核心任务包括三个步骤:输入 URL 获取网页内容(HTML)、解析 HTML 提取目标信息、以及数据存储。

2.1 爬虫基础知识

定义与功能 爬虫是一种自动获取网页内容的程序,通过解析 HTML 源码获得所需信息。一个成熟的爬虫系统必须具备以下功能:礼貌性(遵循 Robots 协议)、鲁棒性、性能与效率、分布式支持、新鲜度保障及功能可扩展性。

工作流程

  1. 选择种子 URL(Seed URL);
  2. 获取文档内容;
  3. 解析并判重,选择性保留;
  4. 提取新链接,判重后加入队列;
  5. 循环执行上述步骤。

爬取策略

  • BFS(广度优先):适合在有限时间内抓取重要页面(如首页),但握手次数较多。
  • DFS(深度优先):适合单站深度挖掘,减少握手次数,提升性能。
  • 分布式问题:多台机器共享哈希表判重时,通信可能成为瓶颈。解决方案包括明确服务器分工和批量处理以减少通信。

2.2 爬虫分类

根据应用场景可分为:基于整个 Web 的信息采集(如门户搜索引擎)、增量式采集、用户个性化采集以及主题 Web 信息采集。

2.3 开源工具 Nutch

Nutch 是一个整合 Web 信息采集的开源工具,特点包括多线程、宽度优先遍历、遵循机器人协议、采用 Socket 连接、边爬取边解析以及页面评分机制。

第三章 网页分析

网页分析主要基于 HTML 文档格式,从不同角度抽取信息:将 HTML 视为字符流(正则表达式)、树结构(DOM 模型)或使用外部工具。

3.1 正则表达式

正则表达式是字符串操作的逻辑公式,用于定义过滤规则。其特点是匹配速度快,但表达能力仅限于正规文法。适用于信噪比要求不高的场景,但在需要去噪或网页自动分类时,建议使用 DOM 树。

3.2 DOM 模型

DOM(文档对象模型)将 HTML 转化为树状结构,支持随机访问。相比正则表达式,DOM 解析速度较慢,但表达能力相当于上下文无关文法,更适合复杂的网页结构处理。常用库包括 jsoup、HTMLParser 等。

3.3 Beautiful Soup 工具

Beautiful Soup 提供了解析文档的工具箱,支持多种解析器:

  • html.parser:内置,速度慢但通用。
  • HTML5Lib:处理不规范 HTML。
  • lxml:效率高,适用于 HTML 和 XML 解析。

优缺点:操作简单方便,但会加载整个文档树,消耗资源较多。

3.4 Scrapy 框架

Scrapy 是一个快速、高层次的爬虫框架,实现了底层多线程请求和异步网络通讯。核心组件包括引擎、调度器、下载器、爬虫、管道及中间件。

开发四步走:

  1. 新建项目(scrapygenspider <name> <domain>);
  2. 定义 Items(目标数据);
  3. 编写 Spider(爬取逻辑);
  4. 创建 Pipeline(存储处理)。

用户只需关注 Item 和 Spider,其余部分由框架封装。

数据存储

  • CSV/JSON/XML:结构化文件存储,JSON 可读性好且交换灵活。
  • 数据库:SQLite(轻量级)、MySQL、MongoDB。
  • Pickle:Python 对象序列化,二进制格式,不可读但高效。

Meta 字典:用于跨页面传递数据,通过 Request 的 meta 参数传入 Response。

3.5 工具比较

  • Request + BS4:适合页面级爬虫,上手快,但并行性考虑不足,大型开发需自行造轮子。
  • Scrapy:适合网站级爬虫,性能高,结构封装好,适合大型项目。

3.6 元搜索引擎

元搜索引擎通过统一界面控制多个检索工具,实现结果合并与筛选,是对分布网络检索工具的全局控制。

第四章 爬虫与网站的博弈

反爬虫策略旨在保护正常用户的同时限制爬虫。后端常见策略包括 User-agent 检测、Referer 检测、Cookie 验证及 IP 限制;前端则涉及懒加载和字体加密(FONT-FACE)。

4.1 Robot 协议

网站通过 Robots 协议告知搜索引擎可抓取和禁止抓取的页面路径。

4.2 User-agent

UA 是 HTTP 请求头的一部分,标识浏览器类型、操作系统等信息。服务器可根据 UA 返回不同排版以适应设备。

4.3 IP 屏蔽

网站策略:限制同一 IP 频繁访问,封禁特定 IP。 爬虫策略:使用多 IP 并行、IP 代理池(定期检测可用性)、增大爬取间隔。

4.4 登录与 Cookie 验证

流程为提交账号密码 -> 后端生成 Cookie -> 客户端保存并在后续请求中携带。可使用 cookiejar 工具管理。

4.5 模拟浏览器

对于动态加载页面,可使用 Selenium 模拟交互(键盘、鼠标、AJAX 响应)。Selenium 提供三种等待方式:强制等待、显式等待、隐式等待,以解决元素加载时序问题。

懒加载处理:

  • 简单方法:寻找 data-src 等暂存属性。
  • 模拟浏览器:通过 Selenium 滑动页面触发加载。

验证码处理:

  • 图片识别:截图 -> 图像预处理 (Pillow) -> OCR 识别。
  • 滑动验证:定位缺口位置 -> 模拟拖动(注意非匀速及 Y 轴抖动)-> 验证成功。

第五章 数据抽取与包装器

信息抽取是将非结构化文本转化为结构化表格的过程,包括实体抽取、关系抽取和事件抽取。

5.1 Web 信息抽取

核心是从半结构化 HTML 中隐含的信息点抽取出来,转化为结构化语义形式。通常步骤包括预处理、模式匹配、词法句法分析、上下文推理及结构化输出。

5.2 Web 数据抽取

基本前提是页面由模板生成。目标是逆向推导页面模板 T,还原数据 D。

定义要素:

  • T:页面模板
  • W:页面
  • d:数据
  • C:相似页面不变部分(导航、版权)
  • L:格式规范
  • S:观察到的数据模式

5.3 包装器

包装器是利用抽取规则将 Web 页面信息转化为结构化格式的软件过程。核心在于抽取规则的定义。

基于分界符规则:视 HTML 为字符流,利用起始和结束标签(如 <i> 和 </i>)提取中间内容。

基于树路径规则:视 HTML 为树结构,通过 XPath 等路径搜索节点。

分类:

  • 手工方法:人工编写规则,适合小规模即时抽取。
  • 归纳方法:机器学习产生规则(有监督),需清洗和标注数据。
  • 自动生成:无监督挖掘重复模式,适合大规模持续抽取。

评价标准:召回率、准确率、自动化程度、适应性、修正率。F 值为二者的加权调和平均。

第六章 包装器页面抽取方法

本章重点讲解如何通过包装器实现页面抽取。

6.1 网页分类

按数据组织形式分为单记录页面(详情页)和多记录页面(列表页)。 按内容分为数据型页面(结构化记录)和文档型页面(文本内容)。 组合后可分为:单记录数据型、多记录数据型、单记录文档型、多记录文档型。

6.2 多记录数据型页面抽取

步骤:识别数据记录边界 -> 抽取数据项。

确定数据区域:

  • 比较 DOM 树算法:递归遍历比较两棵树的节点差异。
  • 语义块算法:计算关键字频率和共同路径,确定语义块层次。

计算边界:利用规则划分数据记录。

数据项抽取:

  • 识别:位置相同、标签序列相同即为同字段。
  • 匹配:基于出现路径、视觉信息、上下文信息及文本特征相似性判断。

6.3 单记录数据型页面抽取

采用增量式抽取,推导页面模板。若模板变化,使用部分树对齐算法(增量推导):选择种子树,逐个对齐剩余树,生成新模板直至收敛。

6.4 单文档型页面抽取

结合视觉信息,正文通常占据最大位置。存在问题如短正文难提取。改进方案包括抽取路径学习(保存路径至数据库)和贝叶斯最优决策(自动选择视觉或数据库路径)。

第七章 Web 数据存储

结构化文件:Excel、CSV、JSON、XML、Pickle。 结构化数据库:SQLite、MySQL、MongoDB。 非结构化文件:TXT、JPG、HBase 等非结构化数据库。

第八章 Web 数据预处理

8.1 结构化数据处理

  • 清洗:缺失值处理、噪声处理、不一致处理。
  • 特征工程:特征选择、提取、组合、构造。PCA 用于降维去相关。
  • 标准化与归一化:Z-score 标准化使均值为 0 方差为 1;归一化统一尺度,加速收敛。
  • 连续值与离散值:连续值可二值化、分箱;离散值需编码(标签编码、独热编码)。

8.2 非结构化数据处理

文本数据涉及 SQL 查询、NLP 特征(分词、向量描述)。图像数据涉及特征识别与跨模态检索。

第九章 文本预处理

步骤:文档解析 -> 句子分割 -> 分词 -> 词规范化 -> 去停用词。

9.1 基于词典的分词

策略包括正向/逆向匹配、最大/最小匹配。遇到不认识的字串则分割。

9.2 基于统计的分词

思想:相连字出现频度高则可能为一个词。常用模型包括 N 元文法、HMM、条件随机场及深度学习模型。

9.2.1 基于 HMM 的分词

隐马尔可夫模型(HMM)假设未来只与现在有关。应用于分词时,观察值为汉字,状态值为 BMES(Begin, Middle, End, Single)。

关键算法:

  • 概率计算:前向 - 后向算法。
  • 模型训练:EM 算法(Baum-Welch)。
  • 模型使用:Viterbi 算法(动态规划)求最优状态路径。

第十章 文本表示

文本预处理后得到词条集合,需转化为向量供模型使用。

10.1 文本向量化

  • 离散表示:词袋模型、TF-IDF,忽略语序。
  • 分布式表示:低维向量,捕捉语义信息。

10.2 隐语义分析 LSA

对文本降维,仅保留主要语义。通过奇异值分解(SVD)建立词频矩阵。优点是可以缓解稀疏性问题,缺点是无法解决多义词,且计算复杂。

10.3 主题模型

  • pLSA:从统计学角度看待 LSA,引入 EM 算法估计单词 - 主题信息。
  • LDA:在 pLSA 基础上引入先验分布(狄利克雷分布),更符合文本特性。

10.4 文档哈希

将任意长度输入转化为固定长度指纹。通过 Simhash 算法计算汉明距离判断重复。Simhash 步骤:分词加权 -> Hash 计算 -> 降维合并。

第十一章 语言模型

语言模型用于反馈句子可信度或生成新句子。

11.1 n-gram 语言模型

基于大数定理,相对频度等于概率。长句子会导致概率趋近 0,需增加数据量、平滑技术或使用神经网络模型。

11.2 神经网络语言模型 NNLM

解决了 n-gram 无法建模远距离依赖和词相似性的问题。结构包含 Embedding 层、中间层和输出层。

第十二章 词嵌入和文档嵌入

深度学习将事物映射为复杂向量再进行处理。

  • Word2Vec:CBOW 利用周围词预测中心词;Skip-Gram 利用中心词预测周围词。引入负采样提高效率。
  • Doc2Vec:同时训练词向量和段落向量,用于聚类分类。
  • GloVe:利用全语料库共现矩阵,改进 Word2Vec 局部信息缺陷。

第十三章 文本分类

13.1 文本分类

应用包括情感分析、主题分析、意图识别等。基本结构为特征表示(词袋、TF-IDF、Embedding)+ 分类模型(浅层或深度学习)。

13.2 fastText

改进 Word2Vec 局限性,以字符级确定特征向量,支持未登录词,训练速度快。

13.3 TextCNN

将 CNN 迁移到 NLP,使用不同大小卷积核提取信息,池化层和全连接层进行特征使用。

13.4 Token 化

大语言模型中的分词流派。Token 比词更细粒度,具有开放词汇表、强形态处理能力及跨语言适配优势。BPE 算法通过迭代合并高频字符对构建词汇表。

第十四章 Web 图片数据

14.1 Web 图像

位图(JPEG/GIF)基于像素网格;SVG 基于 XML 代码绘图;矢量图形可无限缩放。

14.2 图像特征

分为低层特征(颜色、纹理、形状)和语义特征;局部特征和全局特征。

14.3 颜色特征

最直观的物理特征。常用颜色空间 RGB(加光模式)和 HSV(色相、饱和度、亮度)。颜色直方图描述色彩分布,颜色矩(均值、方差等)作为统计摘要。

14.4 纹理特征

描述表面性质,如 LBP(局部二值模式),对光照和旋转具有不变性。

14.5 形状特征

低级特征包括颜色、纹理和形状。局部形状特征如 HOG(方向梯度直方图)和 SIFT(尺度不变特征转换)。HOG 适合人体检测,SIFT 用于地图感知导航。

总结

Web 数据管理涵盖爬虫、解析、存储、预处理及 NLP 等多个环节。从基础的数据获取到高级的文本与图像特征提取,掌握这些技术有助于构建完整的数据处理 pipeline。

目录

  1. 第二章 网络爬虫
  2. 2.1 爬虫基础知识
  3. 2.2 爬虫分类
  4. 2.3 开源工具 Nutch
  5. 第三章 网页分析
  6. 3.1 正则表达式
  7. 3.2 DOM 模型
  8. 3.3 Beautiful Soup 工具
  9. 3.4 Scrapy 框架
  10. 3.5 工具比较
  11. 3.6 元搜索引擎
  12. 第四章 爬虫与网站的博弈
  13. 4.1 Robot 协议
  14. 4.2 User-agent
  15. 4.3 IP 屏蔽
  16. 4.4 登录与 Cookie 验证
  17. 4.5 模拟浏览器
  18. 第五章 数据抽取与包装器
  19. 5.1 Web 信息抽取
  20. 5.2 Web 数据抽取
  21. 5.3 包装器
  22. 第六章 包装器页面抽取方法
  23. 6.1 网页分类
  24. 6.2 多记录数据型页面抽取
  25. 6.3 单记录数据型页面抽取
  26. 6.4 单文档型页面抽取
  27. 第七章 Web 数据存储
  28. 第八章 Web 数据预处理
  29. 8.1 结构化数据处理
  30. 8.2 非结构化数据处理
  31. 第九章 文本预处理
  32. 9.1 基于词典的分词
  33. 9.2 基于统计的分词
  34. 9.2.1 基于 HMM 的分词
  35. 第十章 文本表示
  36. 10.1 文本向量化
  37. 10.2 隐语义分析 LSA
  38. 10.3 主题模型
  39. 10.4 文档哈希
  40. 第十一章 语言模型
  41. 11.1 n-gram 语言模型
  42. 11.2 神经网络语言模型 NNLM
  43. 第十二章 词嵌入和文档嵌入
  44. 第十三章 文本分类
  45. 13.1 文本分类
  46. 13.2 fastText
  47. 13.3 TextCNN
  48. 13.4 Token 化
  49. 第十四章 Web 图片数据
  50. 14.1 Web 图像
  51. 14.2 图像特征
  52. 14.3 颜色特征
  53. 14.4 纹理特征
  54. 14.5 形状特征
  55. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 AD7606 的 8 通道高速同步采集系统设计与 Verilog 实现
  • AudioSeal 在 Whisper 生成音频中检测并提取原始水印
  • OpenAI o3/o4-mini 推理优化与阿里 Qwen3.5-Max-Preview 盲测登顶
  • macOS 本地部署 Llama3:Ollama 与 Enchanted 实战指南
  • 前端三年成长记:从理想主义到工程实战的蜕变
  • 变分量子分类器在医疗诊断中的 Python 实现与原理分析
  • 基于腾讯云 HAI 与 DeepSeek 快速搭建个人网页
  • 矿山煤炭输送场景目标检测与异物识别数据集说明
  • 适合机器人底盘的三种规格铝合金麦克纳姆轮
  • JDK 主流版本现状与选型建议
  • Java 注解基础:自定义默认值与继承限制
  • MySQL 内置函数实战指南:日期、字符串与数学运算
  • TI AFE5816:16 通道超声波模拟前端 (AFE) 详解
  • 多模态大模型垂直微调实战:Qwen3-VL-4B-Thinking 与 Llama Factory
  • DeepSeek-R1 大模型基于 MS-Swift 框架的部署与微调实践
  • Android WebView 版本升级方案详解
  • Python GUI 开发实战:CustomTkinter 现代化界面指南
  • 基于 LangChain 的 RAG 系统语义保留与防丢失方案
  • RunningHub:基于开源生态的图形音视频 AIGC 平台解析
  • Sublime Text 安装与中文配置完整指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online