gpt4 book ai didi

python - 在Python中的文件夹中的所有HTML文件中插入HTML标签

转载 作者:行者123 更新时间:2023-12-01 03:42:08 25 4
gpt4 key购买 nike

我是 python 新手,正在尝试使用程序执行以下操作:

  1. 打开目录路径中的所有文件夹和子文件夹

  2. 识别 HTML 文件

  3. 在 BeautifulSoup 中加载 HTML

  4. 找到第一个body标签

  5. 如果正文标记后紧跟着 ,则继续

  6. 如果没有,则添加 代码并保存文件。

我无法扫描每个文件夹中的所有子文件夹。如果 < Google Tag Manager> 立即出现在 body 标记之后,我将无法设置 saw() 。感谢您对执行上述任务的任何帮助。

我的代码尝试如下:

  import sys
import os
from os import path
from bs4 import BeautifulSoup

directory_path = '/input'

files = [x for x in os.listdir(directory_path) if path.isfile(directory_path+os.sep+x)]

for root, dirs, files in os.walk(directory_path):
for fname in files:
seen = set()
a = directory_path+os.sep+fname
if fname.endswith(".html"):
with open(a) as f:
soup = BeautifulSoup(f)
for li in soup.select('body'):
if li in seen:
continue
else:
seen.add("<!-- Google Tag Manager --><noscript><iframe src='//www.googletagmanager.com/ns.html?id=GTM-54QWZ8'height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-54QWZ8');</script><!-- End Google Tag Manager —>\n")

最佳答案

这样你就可以安装 iglob python 的库。使用 iglob,您可以递归遍历指定的主目录和子目录,并列出具有给定扩展名的所有文件。然后打开 HTML 文件,读取所有行,手动遍历各行,直到找到标记“”,因为某些可能使用框架的用户可能在 body 标记内包含其他内容。无论哪种方式,循环遍历各行,查找正文标记的开头,然后检查下一行,如果您指定的“Google 跟踪代码管理器”文本不在下一行中,请将其写出。请记住,我写这篇文章的目的是为了让您始终在正文标记之后看到 Google 跟踪代码管理器标记。

请记住:

  1. 如果 Google 跟踪代码管理器文本不是直接位于正文标记之后,则此代码无论如何都会添加它,因此,如果 Google 跟踪代码管理器位于两个正文标记中的某个位置并且可以正常工作,则这可能会破坏您的 Google 功能跟踪代码管理器。
  2. 我使用的是 Python 3.x,因此如果您使用的是 Python 2,您可能需要将其转换为该版本的 Python。
  3. 将“Path.html”替换为变量路径,以便它通过修改重写正在查看的文件。我输入了“path.html”,以便在编写脚本时可以看到输出并与原始输出进行比较。

这是代码:

import glob

types = ('*.html', '*.htm')
paths = []

for fType in types:
for filename in glob.iglob('./**/' + fType, recursive=True):
paths.append(filename)
#print(paths)

for path in paths:
print(path)
with open(path,'r') as f:
lines = f.readlines()

with open(path, 'w') as w:
for i in range(0,len(lines)):
w.write(lines[i])
if "<body>" in lines[i]:
if "<!-- Google Tag Manager -->" not in lines[i+1]:
w.write('<!-- Google Tag Manager --> <!-- End Google Tag Manager -->\n')

关于python - 在Python中的文件夹中的所有HTML文件中插入HTML标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com