学习python,到码农博客。

用正则怎么将html文件中文字取出进行ASCII码转换?

用正则怎么将html文件中文字取出?今天碰到这个问题,思来想去尝试了好几种方法,历经一阵头脑风暴,最后终于还是解决了,想想还是来记录一下。一共定义了三个函数,包含正则切割、正则判断对象开头、ASCII码编码、ASCII码解码、isinstance函数使用、with上下文。

 

首先随便找了一段文字,创建了一个html文件,内容如下:

 

<p>tkinter模块(“Tk接口”)是ScripticsTk GUI工具包的<b>标准Python接口</b>,支持在Unix平台、Windows系统和Macintosh系统上运行。因为它由<a href="https://www.myblou.com">很多</a>小构件组成,当我们在设计一个GUI时,可以通过它丰富的构件库满足我们的需求。</p>
<br>
<p>tkinter模块(“Tk接口”)是ScripticsTk GUI<b>工具包</b>的标准Python接口,支持在Unix平台、Windows系统和Macintosh系统上运行。因为它由很多小构件组成,当我们在设计一个GUI时,可以通过它丰富的构件库满足我们的需求。</p>
<br>

 

本文转自:https://www.myblou.com/archives/1383

 

导入re模块:

import re

 

 

函数一:上面是将html文件中的所有文字(不包含标签)进行ASCII编码,并返回成一个列表。

 

def ASC_bianma():
    '''将文字进行ASC编码'''
    with open(r'C:\Users\dell\Desktop\zhengze\ni.html','r',encoding='utf8') as f:
        wenzi = f.read()        # 导出文件中的所有内容
        pipei = re.split(r'(<.*?>)',wenzi)      # 使用正则以标签进行分隔,返回一个列表
        lst = []
        for x in pipei:
            if re.match('<.*?>',x) or re.match(r'\s',x):    # 判断条件:如果是以<.*?>开头或是空白字符开头
                lst.append(x)     # 直接追加到l列表中
                continue        # 跳出本次循环进行下次循环
            else:
                for v in x:
                    bianma = ord(v)      # 进行ASC编码
                    lst.append(bianma)     # 追加到l列表中
        return lst

 

 

函数二:函数二是将所有文字(不包含标签)进行ASCII解码,并返回成字符串。


def ASC_jiema(lis):
    '''将ASC码转换成文字'''
    ls = []
    for x in lis:
        if isinstance(x,int):       # 判断x是不是int型
            jiema = chr(x)          # 进行ASC解码
            ls.append(jiema)         # 追加到t列表中
            continue            # 跳出本次循环进行下次循环
        else:
            ls.append(x)         # 直接追加到t列表中
    st = ''.join(ls)              # 将t列表中的所有元素连接,返回成字符串
    return st

 

 

函数三:将解码的字符串写入一个新建的html文件中。

 
def xieru_wenjian(sr):
    '''写入html文件中'''
    with open(r'C:\Users\dell\Desktop\zhengze\ha.html','w',encoding='utf8') as f:
        f.write(sr)
        print('文件写入完成')

 

执行函数:

if __name__ == '__main__':
    ma = ASC_bianma()
    zifu = ASC_jiema(ma)
    xieru_wenjian(zifu)

 

运行结果:

文件写入完成

 

打开写入的文件夹路径,会发现一个新的html文件,打开看是这样的:

 

 

鼠标右击查看页面源代码,就会发现跟开始的文件是一样的。

 

 

以上就是我对用正则将html文件中文字取出进行ASCII码转换的讲解,你学会了吗?

posted @ 2020-12-04 13:37  码农blog  阅读(500)  评论(0编辑  收藏  举报

学习python,到码农博客。

/* 看板娘 */ /* 粒子吸附*/