Python大佬帮我看看这个HTML合并问题
本帖最后由 zoenbo 于 2021-5-7 20:58 编辑1。以index.html为主文件,其他所有的html页面<body></body>里的内容合并在index.html的已有内容的末尾与</body>之间的位置,目前合并后,主文件index.html的</body>及下边的至</html>的内容没了。该怎么解决呢?
2。合并后不要内容重复
3。f1 = open('index.html', 'r', encoding='UTF-8') 这块能不能调用文件对话框
https://wwe.lanzouj.com/iMHMYovv29c 附件
# -*- coding: utf-8 -*-
import re
import os
# 旧文件名
f1 = open('index.html', 'r', encoding='UTF-8')
# 新文件名
f2 = open('new.html', 'w', encoding='UTF-8')
data = f1.read()
# 找到</body>位置
tell = data.find('</body>')
# 写入文件
f1.seek(0)
f2.write(f1.read(tell))
# 循环读取指定文件夹内的html文件
root = './'
files = os.listdir(root)
# 默认排序?
files.sort()
#
rec = re.compile('<body.*?>(.*?)</body>', re.S)
for file in files:
f = open('%s\\%s' % (root, file), 'r', encoding='utf-8')
res = rec.search(f.read())
if res:
f2.write(res.group(1))
else:
print('没有匹配到数据,跳过写入!')
# 最后写入剩余内容
f2.write(f1.read())
你这些的啥垃圾代码 完全不按套路来 fanvalen 发表于 2021-5-7 13:58
你这些的啥垃圾代码 完全不按套路来
大佬见笑了,实际上这也不是我写的,以我的能力我连上面这段都写不出来。{:301_1009:} zoenbo 发表于 2021-5-7 14:08
大佬见笑了,实际上这也不是我写的,以我的能力我连上面这段都写不出来。
我记得以前给写过这个功能 fanvalen 发表于 2021-5-7 14:11
我记得以前给写过这个功能
我之前发过一个帖子,就是HTML合并的,那个帖子不知道咋回事,始终找不到了。 最简单的方法 ! 获取</body>的下标之后, 正则匹配出其他网页的内容直接字符串切片拼接就好了 Rezalt 发表于 2021-5-7 14:19
最简单的方法 ! 获取的下标之后, 正则匹配出其他网页的内容直接字符串切片拼接就好了
我这思路大概是有的,就是手不给力,写不出能解决的了的代码。{:301_977:} import re,os
#操作把子htm文件移动到当前add文件夹里(懒得去排除index,py,txt什么鬼文件)
#读取index 去掉body后缀,写入新文件中
indhtm=open('index.html',encoding='utf-8').read()
ml=re.sub('</body>[\s\S]+</html>','',indhtm)
with open('new.htm','a+',encoding='utf-8')as f:
f.write(ml)
#获取所有子htm文件名并按升序排序
adls=os.listdir('./add/')
adls.sort()
for i in adls:
#打开子htm并取body 追加到new后面
zhtm=open('./add/'+i,encoding='utf-8' ).read()
p=r'<body>([\s\S]+)</body>'
zbd=re.findall(p,zhtm)
with open('new.htm','a+',encoding='utf-8')as f:
f.write(' '+zbd+'\n')
#最后写入body后缀
with open('new.htm','a+',encoding='utf-8')as f:
f.write('</body>\n</html>')
print('处理完成') fanvalen 发表于 2021-5-7 20:39
import re,os
#操作把子htm文件移动到当前add文件夹里(懒得去排除index,py,t ...
大佬,请收下我的膝盖~简直不要太完美!帅呆了~~{:1_921:}{:1_919:}
页:
[1]