继续以“实用”指导Pythonic编码(以re通配表达式编撰为例)(2024年终总结②)

发布于:2025-02-10 ⋅ 阅读:(31) ⋅ 点赞:(0)

弃现成工具手剥任务🧐,我哈哈滴就像笨笨的傻大个儿😋。


(笔记模板由python脚本于2025年01月12日 23:29:33创建,本篇笔记适合熟悉正则表达式的coder翻阅)


【学习的细节是欢悦的历程】



  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


---== 彰显C位 ==---

  1. ,可以在评论区书写任何想法
  2. (我将在看到的第一时间回应)

---== 彰显C位 ==---

等风来,不如追风去……

我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4

弃现成工具手剥任务🧐
傻气的实用主义
(哈哈滴就像笨笨的傻大个儿😋)

我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/145102100

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 傻气的实用主义
    • 1、示例html文本
      • 1.1 Nickname
      • 1.2 list_total
      • 1.3 Blog_info
      • 1.4 Blog_ids
    • 2、pattern“脱模”
      • 2.1 Nickname
      • 2.2 list_total
      • 2.3 Blog_info
        • 2.3.1 原创文章篇数
        • 2.3.2 blog_info
        • 2.3.3 优雅实践
    • 3、代码块儿(未经优化)
        • 3.1 pattern
        • 3.2 本地调试脚本
    • 4、后记


◆ 傻气的实用主义


  有人说“编程”没有炼手的“工程”,我是从可以用print('Hello Wold!')在终端蹦出了字符开始总有“没有代码实现”的“想法”(要不没有实力要么没有时间😂),我脑子的想法就是我的“炼手工程。

  接下来,我就以“re.findall而非HTMLParser”来例证一下我处理问题的“坏脾气”(Python,我仅仅会点儿python😋)……

  pattern通配表达式,本以为很难(在此之前,我也基本是这么认为的。但通过本次试炼,改变了看法),但其实也就是对各个re通配表达字符的清晰、透彻理解而已。😜

  有了“理解”的基本功底,编撰pattern,也就简单成了replace。您认为,replace的难度得有多大?😋

  接下来,我们以csdn博客文章list_page页面源码的结构数据来看看——

  源码文本 => pattern,是如何被replace的。🤗……



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


1、示例html文本


1.1 Nickname

nickname


       var nickName = "梦幻精灵_cq";


1.2 list_total

list_total


    var listTotal = 442;

或者


         <li class="active margin" id="container-header-blog" data-type="blog" data-num="442"><span  data-report-click='{"spm":"1001.2014.3001.5189"}'>博客(442)</span></li> 


1.3 Blog_info

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>


1.4 Blog_ids

Blog_ids(只取部分文章数据,略过更多的文章数据行)


  <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 0 2 4  我的 2 0 2 4  我的 2 0 2 4


2、pattern“脱模”


  re能力强悍,“嗖”的一下,data就到眼前。😋有人说“方是方便,就是pattern难以编撰”!

  真有那么难?🧐

  其实就是将源码文本特定部分(数据提取部分和非关键字标识部分,前者通配各个“同位”数据,后者精减pattern长度)relpace成re通配字符的简单字符串基本操作,只是这“简单”得代码编撰者“亲自”操刀。🤗


2.1 Nickname


  经搜索,昵称nickName关键字是唯一的。

  • 截屏图片
    在这里插入图片描述
    源码var nickName = "梦幻精灵_cq";,可以直接用于pattern,compile(r'var nickName = "(梦幻精灵_cq)";').findall(doc_html),将得输出['梦幻精灵_cq']

  更改通配字符即可得其它字符的csdn昵称,如:


pattern = r'var nickName = "([\w]+)";'

这个patern也会输出['梦幻精灵_cq']\w匹配单词字符,不含空格,但不能输出['敖 丙'],因为两个汉字中间有个空格。

可以——


pattern = r'var nickName = "([\w ]+)";'`

也可以——


pattern = r'var nickName = "([\w\s]+)";'`。


  两者都是“匹配单词或者空格”之是推荐后一种形式用\s通配所有“空白”字符串,前者仅匹配半角空白“”。

  但还可以用任意字符.通配字符来通配任意字符(一定要?限定非贪婪模式,不然会匹配到下面的文本,re默认最大量匹配。


默认贪婪匹配


pattern = r'''var nickName = "(.+)";'''
# 返回 ['敖 丙";\n        var articleDetailUrl = "";\n        var vipUrlV = "https://mall.csdn.net/vip?vipSource=learningVip";\n        if(window.location.host.split(\'.\').length == 3) {\n            blog_address = blogUrl + username;\n        }\n        var skinStatus = "White']


优雅的Pythonic方式


pattern = r'''var nickName = "(.+?)";'''
# 返回 ['敖 丙']


  本节源码文本太过短小,除了关键字符,基本没有其它字符,可以不予进一步精减。


如果非要缩减,这样子也是可以的——


pattern = r'''var nick.+?"(.+?)";'''
# 返回 ['敖 丙']

个人认为,这牺牲可读性的精减,实属不智。😋



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


2.2 list_total


var变量提取


pattern = r'''var listTotal = (\d+);'''
# 返回 ['194']


标签提取


pattern = r'''<li class="active margin" id="container-header-blog" data-type="blog" data-num="(\d+)"><span  data-report-click='{"spm":"1001.2014.3001.5189"}'>(博客)\(\d+\)</span></li>'''
# 返回 [('194', '博客')]

注意: HTML源码文本中的圆括号(),一定要用re语法转义(博客)\(194\),否则匹配不到返回[]


精炼pattern


pattern = r'''data-type="blog".+?"(\d+)">.+?(博客)'''
# 返回 [('194', '博客')]

精炼原则: 保留“关键字”(方便人阅读,适宜机器搜索),精准匹配模式(贪婪/非贪婪)



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


2.3 Blog_info


2.3.1 原创文章篇数

简单匹配


pattern = '''<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>'''
# 返回 [('439', '原创')]

  源码文本直接pattern,仅可提取pattern“目标”字符串文本data(当原创文章数值变化时,此“硬编码”pattern将无所适从,只能返回[]


个人id匹配


pattern = '''<dl class="text-center" title="(\d+)">
            <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">\d+</span></dt>
                <dd class="font">(原创)</dd>
            </a>
        </dl>'''
# 返回 [('442', '原创')]

  将文章篇数用\d+任意个数数字通配,将匹配到与pattern中硬编码的csdn用户id的任何时候的原创文章篇数数值。


通用匹配


pattern = r'''<dl class="text-center" title="(\d+)">            <a href="https://.*blog.csdn.net.*" data-report-click='{"mod":"1598321000_001","spm":"1001.2101.3001.4310"}' data-report-query="t=1">                  <dt><span class="count">\d+</span></dt>                <dd class="font">(原创)</dd>            </a>        </dl>'''
# 返回1 [('439', '原创')] (m0_57158496)“梦幻精灵_cq”(笔者)的博客
# 返回2 [('194', '原创')] (aobing)“敖 丙”的博客

  由返回字符串可见,我的pattern实现了真正意义上的通配。不过实现稍有些曲折,为比对字符串的相左之处,还写了几行辅助代码。😋


辅助比对代码


text2 = '''<dl class="text-center" title="194">
            <a href="https://aobing.blog.csdn.net" data-report-click='{"mod":"1598321000_001","spm":"1001.2101.3001.4310"}' data-report-query="t=1">  
                <dt><span class="count">194</span></dt>
                <dd class="font">原创</dd>
            </a>
        </dl>''' # “敖 丙”的博客

text = '''<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>''' # “梦幻精灵_cq”(笔者)的博客
if text == text2:
    print('ok') 
else:
    delta = []
    for i in range(min(len(text), len(text2))):    
        if text[i] != text2[i]:
            delta.append(text2[i])

    print(''.join(delta))

  通过辅助比对代码的帮助,我快速知晓了博客主页url的结构——


<!-- https://aobing.blog.csdn.net “敖 丙”的主页-->
<!-- blog “梦幻精灵_cq”(笔者)的主页-->
https://[自定义域名]blog.csdn.net/[usrName]

自定义域名、usrName必有其一(不能共存)

  弄清楚了csdn博客url结构规则,在通晓正则表达式通配字符的背景下,撰写pattern就是信手拈来。😋

pattern = r'https://.*blog.csdn.net/.*'

自定义域名和csdn用户id字符串都可以是零到任意个数的任意字符.在默认情形通配除\n外的所有字符,*量词是0个以上,没有上限。换句话说就是*+多了可以为零的权利,就是是没有、不存在、空缺的意思。)

  它,就高人的“摘叶飞花”!😎


精炼匹配


pattern = r'''<dl class="text-center" title="(\d+)">.+?(原创)</dd>'''
# 返回1 [('439', '原创')] (m0_57158496)“梦幻精灵_cq”(笔者)的博客
# 返回2 [('194', '原创')] (aobing)“敖 丙”的博客

  因为我是中文key一起提取,下手可以更狠。个人csdn博客url在这个语境是次key((因为有中文一级key打底,狠点儿没有影响),中“间”的所有字符都用.一笔带过(贪与不贪一定要用?限定明白),因为我有re.DOTALL帮衬,对\n的阻挠无所畏惧。


  对于页面变化的担忧: 对于可以庖丁pattern的re玩家,面对略微改变的html页面源码,就是信手拈来的小case。😎😎

  完全不必忧心!🤗



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


2.3.2 blog_info

  通过前面的成功提取和分析过程可以发现,“原创”到“收藏”的10组数据,都有“相同”的结构,可以一并通配。😋


通配表达式


pattern = r'''<dl class="text-center".+?title="(\d+).+?(\w+)</dd>'''
# 返回 [('442', '原创'), ('3509', '周排名'), ('2854', '总排名'), ('760632', '访问'), ('7', ' 等级'), ('10344', '积分'), ('9464', '粉丝'), ('4251', '获赞'), ('579', '评论'), ('4800', '收藏')] # “梦幻精灵_cq”(笔者)的博客

  数据都在dl标签的title属性,只是title前有不同长度的任意字符,可以.+?非贪通配。其中文key都在dd结束标签前,其前言也是有任意个数任意字符,也可以.+?最小匹配。💪



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


2.3.3 优雅实践

  仔细比对,发现在我这个单例中第一组和后10数据横亘数千行字符,一并提取,肯定费劲,分是最优解(后10组合是最佳实现,数据“紧”贴一块儿)。😋


优雅代码


list_total = r'''id="container-header-blog".+?data-num="(\d+)">.+?(博客)'''
list_total = re_compile(list_total, DOTALL)
pattern = r'''<dl class="text-center".+?title="(\d+).+?(\w+)</dd>'''
pattern = re_compile(pattern, DOTALL)
filename = 'first_list_page'
filename = 'local'
#filename = 'aobing'

with open(f"{path}{filename}.html", 'r') as f:
    doc_html = f.read()

result = list_total.findall(doc_html) + pattern.findall(doc_html)
print(result)

  • 返回示例

    样本一
    [(‘194’, ‘博客’), (‘194’, ‘原创’), (‘5083’, ‘周排名’), (‘14498’, ‘总排名’), (‘7233378’, ‘访问’), (‘9’, ‘等级’), (‘84007’, ‘积分’), (‘303752’, ‘粉丝’), (‘54930’, ‘获赞’), (‘9835’, ‘评论’), (‘122316’, ‘收藏’)] # “敖 丙”的博客

    样本二
    [(‘445’, ‘博客’), (‘442’, ‘原创’), (‘3509’, ‘周排名’), (‘2854’, ‘总排名’), (‘760632’, ‘访问’), (‘7’, ‘等级’), (‘10344’, ‘积分’), (‘9464’, ‘粉丝’), (‘4251’, ‘获赞’), (‘579’, ‘评论’), (‘4800’, ‘收藏’)] # “梦幻精灵_cq”(笔者)的博客



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


3、代码块儿(未经优化)


3.1 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>)'''
               ) # 原字符串每行一个数据:除第一项是博客总数外,其余数据紧接的中文字符提取就是其key
    pattern = 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.2 本地调试脚本

#!/sur/bin/nve python3
from re import compile as re_compile, DOTALL

path = '/sdcard/Documents/csdn/temp/'
pattern = r'''<dl class="text-center".+?title="(\d+).+?>(\w+?)</dd>'''
#list_total = r'''id="container-header-blog".+?data-num="(\d+)">.+?(博客)'''
#list_total = re_compile(list_total, DOTALL)
#pattern = r'''<dl class="text-center".+?title="(\d+).+?(\w+)</dd>'''
pattern = re_compile(pattern, DOTALL)
filename = 'first_list_page'
filename = 'local'
#filename = 'aobing'

with open(f"{path}{filename}.html", 'r') as f:
    doc_html = f.read()

result = pattern.findall(doc_html)
#result = list_total.findall(doc_html) + pattern.findall(doc_html)
print(result)

  我一般本地文件调试代码,因为以本地文件更迅速快捷。😋



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


4、后记


  前面示例的硬拉一起提取,确实费力,要历经像卡顿一样的等待,虽然工作一样完成。

  有时候“”并非好事儿。😋
分/合之事,要权宜处之。😎😎💪💪

  个人认为这个观点很有道理。🧐在编程和许多其他领域,选择是分还是合,往往取决于具体情况和目标。


以下是一些考虑因素:

  • 分(分割任务)
    • 性能优化:对于大量数据或复杂处理,分步处理可以减少内存消耗,提高响应速度。
    • 可读性和维护性:分步骤可以让代码更加清晰,便于理解和调试。
    • 错误隔离:如果某个步骤失败,更容易定位问题所在,而不影响其他步骤。

  • 合(合并任务)
    • 简化流程:合并可以减少代码量和复杂性,特别是当任务很小时。
    • 减少I/O操作:合并可以减少对磁盘或网络的读写次数,这在I/O密集型任务中可能很有优势。
    • 批处理优势:有时候,合并处理可以更好地利用批处理的优势,提高效率。

  在实际应用中,确实需要权衡这些因素。如果您的任务是处理大量数据或对性能有严格要求,分步处理通常是更好的选择。但如果任务相对简单,且合并处理不会导致明显的性能问题,那么合并可能会更简洁。


  在前面的示例中中,我分别提取了两个正则表达式的结果,然后将它们合并。这样做可以让您更清楚地看到每个步骤的结果,并且如果需要,可以更容易地对每个步骤进行调试或优化。


  “实用”是我的代码教条,它将是我的pythonic之路的第一宗旨。💪💪💪



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


上一篇:  本地手集博客id“升级”在线抓取——简陋版——(2024年终总结1.1)(我之前每每发布笔记都用csv纯文本记录,一个机缘巧得文章列表api实现在线整理自已的文章阅读量数据)
下一篇: 



我的HOT博:

  本次共计收集404篇博文笔记信息,总阅读量61.76w。数据采集于2024年11月25日 08:23:38,用时7分56.4秒。阅读量不小于6.00k的有 9 9 9篇。

  1. 让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)

  2. 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)

  3. 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)

  4. 个人信息提取(字符串)
    地址: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)

  5. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:8.2k
    收藏:3 
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  6. 统计字符串字符出现的次数
    地址: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)

  7. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:8.0k
    点赞:1 收藏:12 评论:1
  8. 回车符、换行符和回车换行符
    地址: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)

  9. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:6.1k
    点赞:1 收藏:10 

推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



我的 2 0 2 4  我的 2 0 2 4  我的 2 0 2 4


老齐漫画头像

精品文章:

来源:老齐教室


Python 入门指南【Python 3.6.3】


好文力荐:


CSDN实用技巧博文:



网站公告

今日签到

点亮在社区的每一天
去签到