在Sublime中利用正则替换高效清洗爬虫抓取的原始数据

阿明姑娘_2753

阿明姑娘_2753

2026-09-26

295人浏览

原创

sublime正则替换需先处理换行符、html标签、编码空白三类干扰源:windows下切换unix(lf)格式或用^#\r?、\s*\z;删标签用]*>更安全;提取属性需引号配对和字符集限制;全角空格等须显式匹配;末尾无换行时用\z兜底。

在sublime中利用正则替换高效清洗爬虫抓取的原始数据

Sublime 的正则替换能高效清洗爬虫原始数据,但必须先处理三类干扰源:换行符混乱、HTML 标签嵌套污染、编码与空白字符错位——否则看似正确的正则会漏匹配、跨标签、或输出乱码。

为什么^和$在Windows粘贴文本里总不锚定行首行尾

根本不是正则写错了,而是 Sublime 默认不把 \r\n 当作单个换行单元。你在 Windows 下复制的 HTML 或日志,^# 无法匹配以 # 开头的行,因为 ^ 停在 \r 前,\n 被当成普通字符。

  • 最稳做法:右下角点击换行标识,切换为 Unix (LF) 格式,再启用 .* 模式
  • 临时兼容:把 ^# 改成 ^#\r?,\s*$ 改成 \s*\Z(\Z 匹配文件末尾,不受 \r 干扰)
  • 别依赖中文界面插件自动识别——先按 Ctrl+Shift+P 输入 Set Syntax: Plain Text 切回纯文本模式

删 HTML 标签时为什么]*>比<.></.>更安全

<.></.> 在 Sublime 的 Python re 引擎里默认不跨行,且遇到 <script>console.log('<div>')</script> 会把字符串里的 <div> 也当标签删掉;而 <code>]*> 用否定字符集锁死“尖括号内不能出现 >”,天然避开属性值干扰。

  • 若标签被折行(如 <div>),先统一换行符:<code>(?:\r\n|\r|\n)+ → \n,再跑 ]*>
  • 要删完整标签块(含内容),用 ]*>[\s\S]*?,但必须提前清除 <script>]*>[\s\S]*?</script> 和 <style>]*>[\s\S]*?</style>
  • ]*> 不处理注释,<!--.*?--> 得单独跑一遍,否则 [\s\S]*? 会在 --> 处中断
  • 提取 href、title 等属性值时为什么总多出空格或引号

    常见写法 href=["'](.*)["'] 中的 .* 会吞掉紧邻的空白、换行甚至下一个属性的引号,导致捕获内容脏。

    智能网页爬虫
    智能网页爬虫

    智能网页数据采集器,自动识别页面结构,批量抓取列表/表格/详情页数据,支持导出JSON/CSV/Excel,内置反爬策略适配。

    下载
    • 正确写法:href\s*=\s*(["'])([^"'>\s]+)\1 —— \1 确保引号配对,[^"'>\s]+ 明确排除引号、尖括号、空白
    • 匹配 title="Xiaomi" 用 title\s*=\s*(["'])([^"']*)\1,注意不是 .*?,避免吃掉末尾引号前的空格
    • 替换时别直接 $2 输出,先用 ^\s+|\s+$ 清首尾空格,再导出

    清洗后文本粘连、空行失控、中文变方块,问题不在正则本身

    删完标签只剩裸文本,“<p>标题</p>

    内容
    ”变成“标题内容”,是语义丢失,不是正则没写对;中文变方块是编码读取错位,不是替换逻辑问题。
    • 补段落逻辑:<p></p> → \n, → \n,
      <br>
      → \n,别指望一个正则解决所有块级语义
    • 全角空格(\u3000)、不间断空格(\u00A0)不会被 \s 匹配,得显式写进正则:[ \t\n\r\f\v\u3000\u00A0\u2000-\u200B]+
    • 右下角看 Encoding,若显示 Western (CP1252) 或 GBK,但原始数据是 UTF-8(尤其带 BOM),手动转码:File → Reopen with Encoding → UTF-8

    真正容易被忽略的是文件末尾状态:没换行符的文件,最后一行永远无法被 ^$ 匹配到,必须靠 \s*\Z 兜底;还有剪贴板历史干扰——连续多次 Alt+Enter 后,Ctrl+V 可能粘贴出上一轮旧结果,每次提取前先 Ctrl+C 空白处清空剪贴板。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

60

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

20

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

20

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

20

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

20

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

20

19

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

2026.09.22

20

19

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

2026.09.22

40

21

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

2026.09.22

60

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程