Python大佬帮我看看这个HTML合并问题

zoenbo2021-5-750

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.lanzous.com/iMHMYovv29c 附件[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-import reimport 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文件[1.html,2.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())
最新回复 (8)
  • fanvalen2021-5-7
    引用2
    [Python] 纯文本查看 复制代码
    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[0]+'\n')#最后写入body后缀with open('new.htm','a+',encoding='utf-8')as f:    f.write('  </body>\n</html>')print('处理完成')
  • fanvalen2021-5-7
    引用3
    你这些的啥垃圾代码 完全不按套路来
  • 楼主zoenbo2021-5-7
    引用4
    fanvalen 发表于 2021-5-7 13:58
    你这些的啥垃圾代码 完全不按套路来

    大佬见笑了,实际上这也不是我写的,以我的能力我连上面这段都写不出来。
  • fanvalen2021-5-7
    引用5
    zoenbo 发表于 2021-5-7 14:08
    大佬见笑了,实际上这也不是我写的,以我的能力我连上面这段都写不出来。

    我记得以前给写过这个功能
  • 楼主zoenbo2021-5-7
    引用6
    fanvalen 发表于 2021-5-7 14:11
    我记得以前给写过这个功能

    我之前发过一个帖子,就是HTML合并的,那个帖子不知道咋回事,始终找不到了。
  • Rezalt2021-5-7
    引用7
    最简单的方法 ! 获取</body>的下标之后, 正则匹配出其他网页的内容  直接字符串切片拼接就好了
  • 楼主zoenbo2021-5-7
    引用8
    Rezalt 发表于 2021-5-7 14:19
    最简单的方法 ! 获取的下标之后, 正则匹配出其他网页的内容  直接字符串切片拼接就好了

    我这思路大概是有的,就是手不给力,写不出能解决的了的代码。
  • 楼主zoenbo2021-5-7
    引用9
    fanvalen 发表于 2021-5-7 20:39
    [mw_shl_code=python,true]import re,os
    #操作把子htm文件移动到当前add文件夹里(懒得去排除index,py,t ...

    大佬,请收下我的膝盖~简直不要太完美!帅呆了~~
  • 游客
    10
返回