继续以“实用”指导Pythonic编码(re通配表达式)(2024年终总结2)
弃现成工具手剥任务🧐,我哈哈滴就像笨笨的傻大个儿😋。
(笔记模板由python脚本于2025年01月12日 23:29:33创建,本篇笔记适合熟悉正则表达式的coder翻阅)
-
Python官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
-
您,可以在评论区书写任何想法 -
(我将在看到的第一时间回应)
本文质量分:
本文地址: https://blog.csdn.net/m0_57158496/article/details/145102100
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆ 傻气的实用主义
- 1、示例html文本
- 2、pattern“脱模”
- 3、完整pattern
- 3、后记
◆ 傻气的实用主义
有人说“编程”没有炼手的“工程”,我是从可以用print('Hello Wold!')
在终端蹦出了字符开始总有“没有代码实现”的“想法”(要不没有实力要么没有时间😂),我脑子的想法就是我的“炼手工程。
接下来,我就以“re.findall而非HTMLParser”来例证一下我处理问题的“坏脾气”(Python,我仅仅会点儿python😋)……
pattern通配表达式,本以为很难(在此之前,我也基本是这么认为的。但通过本次试炼,改变了看法),但其实也就是对各个re通配表达字符的清晰、透彻理解而已。😜
有了“理解”的基本功底,编撰pattern,也就简单成了replace。您认为,它的难度得有多大?😋
接下来,我们以csdn博客文章list_page页面源码的结构数据来看看——
源码文本 => pattern,是如何被ease replace的。🤗……
1、示例html文本
题目描述截屏图片
nickname
var nickName = "梦幻精灵_cq";
Blog_info
<div class="data-info d-flex item-tiling"><dl class="text-center" title="439"><a href="https://blog.csdn.net/m0_57158496" data-report-click='{"mod":"1598321000_001","spm":"1001.2101.3001.4310"}' data-report-query="t=1"> <dt><span class="count">439</span></dt><dd class="font">原创</dd></a></dl><dl class="text-center" data-report-click='{"mod":"1598321000_002","spm":"1001.2101.3001.4311"}' title="2367"><a href="https://blog.csdn.net/rank/list/weekly" target="_blank"><dt><span class="count">2367</span></dt><dd class="font">周排名</dd></a></dl><dl class="text-center" title="2974"><a href="https://blog.csdn.net/rank/list/total" data-report-click='{"mod":"1598321000_003","spm":"1001.2101.3001.4312"}' target="_blank"><dt><span class="count">2974</span></dt><dd class="font">总排名</dd></a></dl><dl class="text-center" style="min-width:58px" title="754964"> <dt><span class="count">75万+</span></dt><dd>访问</dd></dl><dl class="text-center" title="7级,点击查看等级说明"><dt><a href="https://blog.csdn.net/blogdevteam/article/details/103478461" target="_blank"><img class="level" src="https://csdnimg.cn/identity/blog7.png"></a></dt><dd>等级</dd></dl></div><div class="item-rank"></div><div class="data-info d-flex item-tiling"><dl class="text-center" title="10235"><dt><span class="count">1万+</span></dt><dd>积分</dd></dl><dl class="text-center" id="fanBox" title="9432"><dt><span class="count" id="fan">9432</span></dt><dd>粉丝</dd></dl><dl class="text-center" title="4183"><dt><span class="count">4183</span></dt><dd>获赞</dd></dl><dl class="text-center" title="579"><dt><span class="count">579</span></dt><dd>评论</dd></dl><dl class="text-center" title="4745"><dt><span class="count">4745</span></dt><dd>收藏</dd></dl></div>
Blog_page_list
(只取部分文章数据,略过多的文章数据)
<div class="article-list"><div class="article-item-box csdn-tracking-statistics" data-articleid="141835445"><img class="settop" src="https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png" alt=""><h4 class=""><a href="https://blog.csdn.net/m0_57158496/article/details/141835445" data-report-click='{"spm":"1001.2014.3001.5190"}' target="_blank"><span class="article-type type-1 float-none">原创</span>AI与我同创诗(最新《2 0 2 5》2025-01-01):尝试让ai(智谱清言)参与我的诗创活动</a> </h4><p class="content">ai伴学越久,契合度愈高,“泛滥”之诗情,幸得学伴共雕琢。让ai伴学久了,不知觉的,写诗也让ai帮衬了。此文收录“我共ai”的自创文稿,亦可作“ai诗集”。😋(笔记模板由python脚本于2024年09月03日 06:16:31创建,本篇笔记适合喜欢我泱泱华夏上下五千年经典文化,喜欢即情码字的coder翻阅)【学习的细节是欢悦的历程】Python官网Free:大咖免费“圣经”教程python 完全自学教程,不仅仅是基础那么简单……自学并不是什么神秘的东西。</p><div class="info-box d-flex align-content-center"><p><span class="date">2024-09-05 18:51:35</span><span class="read-num"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">1339</span><span class="read-num"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentCountWhite.png" alt="">3</span></p></div></div><div class="article-item-box csdn-tracking-statistics" data-articleid="140040251"><img class="settop" src="https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png" alt=""><h4 class=""><a href="https://blog.csdn.net/m0_57158496/article/details/140040251" data-report-click='{"spm":"1001.2014.3001.5190"}' target="_blank"><span class="article-type type-1 float-none">原创</span>我关于Excel使用点滴的笔记(最后更新:2024-10-04)</a> </h4><p class="content">本篇笔记是我关于Excel使用点滴的学习笔记,摘要和地址链接列表。临时暂挂,后面可能在不需要时删除。</p><div class="info-box d-flex align-content-center"><p><span class="date">2024-06-28 12:27:30</span><span class="read-num"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">1522</span><span class="read-num"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentCountWhite.png" alt="">1</span></p></div></div>... <!--只取部分文章数据,略过多的文章数据--><div class="article-item-box csdn-tracking-statistics" data-articleid="143735317"><h4 class=""><a href="https://blog.csdn.net/m0_57158496/article/details/143735317" data-report-click='{"spm":"1001.2014.3001.5190"}' target="_blank"><span class="article-type type-1 float-none">原创</span>“非法”操控lambda(python)</a> </h4><p class="content">合理地使用lambda函数作为“常量函数”确实可以让代码更加优雅和高效。您的实践经验证明了这种方法的实用性和有效性。继续利用lambda的这一特性,可以让您的代码更加精炼和易于管理。🎉👏🏻回页目录。</p><div class="info-box d-flex align-content-center"><p><span class="date">2024-11-13 21:24:12</span><span class="read-num"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">855</span></p></div></div></div></div>
2、pattern“脱模”
解析
3、完整pattern
Nickname
nickname = re_compile(r'nickName = "(.+)";').findall(doc_blog_lists[0])[0] # 从第一页文章列表提取昵称字符串
Blog_info
pattern = (r'''(?:<li class="active margin" id="container-header-blog" data-type="blog" data-num="(\d+)">)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd class="font">(原创)</dd>)'''r'''.+?(?:<dl class="text-center" data-report-click='{"mod":"1598321000_002","spm":"1001.2101.3001.4311"}' title="(\d+)">.+?<dd class="font">(周排名)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd class="font">(总排名)</dd>)'''r'''.+?(?:<dl class="text-center" style="min-width:58px" title="(\d+)">.+?<dd>(访问)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)级,.+?<dd>(等级)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd>(积分)</dd>)'''r'''.+?(?:<dl class="text-center" id="fanBox" title="(\d+)">.+?<dd>(粉丝)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd>(获赞)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd>(评论)</dd>)'''r'''.+?(?:<dl class="text-center" title="(\d+)">.+?<dd>(收藏)</dd>)''') # 原字符串每行一个数据:除第一项是博客总数外,其余数据紧接的中文字符提取就是其keypattern = re_compile(pattern, DOTALL) # 通配字符串re编译
Blog_ids
pattern = (r'''<div class="article-item-box csdn-tracking-statistics" data-articleid="(\d+)">'''r'''.+?<span class="article-.+?</span>\s+(.+?)\s+</a>'''r'''.+?<p class="content">\s+(.+?)\s+</p>'''r'''.+?<span class="date">(.+?)</span>'''r'''.+?<span class="read-num">.+?/readCount.+?>(\d+)</span>'''r'''\s+(?:<span class="read-num">.+?/commentCount.+?>(\d+)</span>)*''') # 原字符串每行一个数据:Id、Title、Summary、Date、Readed、Comment# 简明版,程序用时:0.008107 秒(一页文章列表本地文件,表态解析)
pattern = re_compile(pattern, DOTALL) # 由于python的优化机制,同一pattern总是被仅编译一次,可以不担心重复编译。但习惯使然,我显式编译一次
3、后记
待写……
上一篇: 本地手集博客id“升级”在线抓取——简陋版——(2024年终总结1.1)(我之前每每发布笔记都用csv纯文本记录,一个机缘巧得文章列表api实现在线整理自已的文章阅读量数据)
下一篇:
我的HOT博:
本次共计收集404篇博文笔记信息,总阅读量61.76w。数据采集于2024年11月25日 08:23:38,用时7分56.4秒。阅读量不小于6.00k的有 9 9 9篇。
- 让QQ群昵称色变的神奇代码
地址:https://blog.csdn.net/m0_57158496/article/details/122566500
浏览阅读:6.2w
点赞:25 收藏:89 评论:17
(本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)
- Python列表(list)反序(降序)的7种实现方式
地址:https://blog.csdn.net/m0_57158496/article/details/128271700
浏览阅读:1.3w
点赞:9 收藏:40 评论:8
(本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)
- pandas 数据类型之 DataFrame
地址:https://blog.csdn.net/m0_57158496/article/details/124525814
浏览阅读:1.0w
点赞:7 收藏:40
(本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)
- 个人信息提取(字符串)
地址:https://blog.csdn.net/m0_57158496/article/details/124244618
浏览阅读:1.0w
点赞:3 收藏:20
(本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)
- 罗马数字转换器|罗马数字生成器
地址:https://blog.csdn.net/m0_57158496/article/details/122592047
浏览阅读:8.2k
收藏:3
(本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)
- 统计字符串字符出现的次数
地址:https://blog.csdn.net/m0_57158496/article/details/130517025
浏览阅读:8.1k
点赞:5 收藏:24
(本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)
- Python字符串居中显示
地址:https://blog.csdn.net/m0_57158496/article/details/122163023
浏览阅读:8.0k
点赞:1 收藏:12 评论:1
- 回车符、换行符和回车换行符
地址:https://blog.csdn.net/m0_57158496/article/details/123109488
浏览阅读:6.7k
点赞:2 收藏:4
(本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)
- python清屏
地址:https://blog.csdn.net/m0_57158496/article/details/120762101
浏览阅读:6.1k
点赞:1 收藏:10
截屏图片
(此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
- 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)