最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)批量在HTML文件中插入自定義div元素

 更新時間:2026年01月29日 08:20:20   作者:weixin_46244623  
在日常開發(fā)或網(wǎng)站維護(hù)中,我們經(jīng)常需要對大量?HTML?文件進(jìn)行統(tǒng)一修改,本文將教你如何使用Python和BeautifulSoup批量在?HTML?文件中插入自定義div元素,并提供兩種常見場景的實現(xiàn)方式,感興趣的小伙伴可以了解下

適用人群:前端開發(fā)者、Python 自動化腳本初學(xué)者、網(wǎng)站維護(hù)人員

在日常開發(fā)或網(wǎng)站維護(hù)中,我們經(jīng)常需要對大量 HTML 文件進(jìn)行統(tǒng)一修改,比如添加導(dǎo)航欄、公告條、統(tǒng)計代碼等。手動一個個修改不僅效率低,還容易出錯。本文將教你如何使用 Python + BeautifulSoup 編寫腳本,批量在 HTML 文件中插入自定義 <div> 元素,并提供兩種常見場景的實現(xiàn)方式。

一、準(zhǔn)備工作

1. 安裝依賴庫

確保你已安裝 beautifulsoup4

pip install beautifulsoup4

注意:本教程使用 html.parser(Python 內(nèi)置解析器),無需額外安裝 lxml 或 html5lib。

2. 目錄結(jié)構(gòu)示例

假設(shè)你的項目結(jié)構(gòu)如下:

your_project/
├── pages/
│   ├── index.html
│   ├── about.html
│   └── contact.html
└── add_div_script.py  ← 腳本文件

我們將對 pages/ 文件夾下的所有 .html 文件進(jìn)行處理。

二、場景一:在<body>開頭插入 div

適用于沒有 <header> 標(biāo)簽,或希望統(tǒng)一在 body 最頂部插入內(nèi)容的場景(如全局公告條)。

腳本代碼

from bs4 import BeautifulSoup
import os

def add_div_to_html_files_in_folder(folder_path, class_name, content):
    """
    遍歷指定文件夾下所有 .html 文件,在 <body> 的最開始位置插入一個 div。
    
    參數(shù):
        folder_path (str): HTML 文件所在文件夾路徑
        class_name (str): 新 div 的 class 類名
        content (str): 新 div 的文本內(nèi)容
    """
    for root, _, files in os.walk(folder_path):
        for file in files:
            if file.endswith('.html'):
                html_file = os.path.join(root, file)

                # 讀取 HTML 文件
                with open(html_file, 'r', encoding='utf-8') as f:
                    html_content = f.read()

                soup = BeautifulSoup(html_content, 'html.parser')

                # 創(chuàng)建新的 div 標(biāo)簽
                new_div = soup.new_tag('div', attrs={'class': class_name})
                new_div.string = content

                # 找到 body 標(biāo)簽,并在開頭插入新 div
                body_tag = soup.body
                if body_tag:
                    body_tag.insert(0, new_div)

                # 寫回文件
                with open(html_file, 'w', encoding='utf-8') as f:
                    f.write(str(soup))

# 配置參數(shù)
folder_path = './pages'          # 替換為你的 HTML 文件夾路徑
class_name = 'my_nav'
content = '歡迎大家訪問'

# 執(zhí)行函數(shù)
add_div_to_html_files_in_folder(folder_path, class_name, content)
print("? 已在所有 HTML 文件的 <body> 開頭插入 div!")

效果示例

原 HTML:

<body>
  <h1>首頁</h1>
  <p>內(nèi)容...</p>
</body>

處理后:

<body>
  <div class="my_nav">歡迎大家訪問</div>
  <h1>首頁</h1>
  <p>內(nèi)容...</p>
</body>

三、場景二:在<header>前插入 div

適用于有語義化 <header> 標(biāo)簽的現(xiàn)代網(wǎng)頁,希望在 header 之前插入內(nèi)容(如頂部通知欄)。

腳本代碼

from bs4 import BeautifulSoup
import os

def insert_div_before_header_in_html_files(folder_path, class_name, content):
    """
    遍歷 HTML 文件,在 <header> 標(biāo)簽前插入 div;
    若無 <header>,則退回到在 <body> 開頭插入。
    """
    for root, _, files in os.walk(folder_path):
        for file in files:
            if file.endswith('.html'):
                html_file = os.path.join(root, file)

                with open(html_file, 'r', encoding='utf-8') as f:
                    html_content = f.read()

                soup = BeautifulSoup(html_content, 'html.parser')

                # 創(chuàng)建新 div
                new_div = soup.new_tag('div', attrs={'class': class_name})
                new_div.string = content

                # 查找 header 標(biāo)簽
                header_tag = soup.find('header')
                if header_tag:
                    header_tag.insert_before(new_div)  # 插入到 header 前
                else:
                    # 回退方案:插入到 body 開頭
                    body_tag = soup.body
                    if body_tag:
                        body_tag.insert(0, new_div)

                # 保存修改
                with open(html_file, 'w', encoding='utf-8') as f:
                    f.write(str(soup))

# 配置參數(shù)
folder_path = './pages'
class_name = 'my_nav'
content = '歡迎大家訪問'

# 執(zhí)行
insert_div_before_header_in_html_files(folder_path, class_name, content)
print("? 已在 <header> 前(或 body 開頭)插入 div!")

效果示例

原 HTML:

<body>
  <header>
    <h1>網(wǎng)站標(biāo)題</h1>
  </header>
  <main>...</main>
</body>

處理后:

<body>
  <div class="my_nav">歡迎大家訪問</div>
  <header>
    <h1>網(wǎng)站標(biāo)題</h1>
  </header>
  <main>...</main>
</body>

四、注意事項 & 最佳實踐

1.備份原始文件:腳本會直接覆蓋原文件!建議先復(fù)制一份備份,或在測試目錄運行。

2.編碼問題:使用 encoding='utf-8' 可避免中文亂碼,確保你的 HTML 文件也是 UTF-8 編碼。

3.路徑設(shè)置:folder_path 支持相對路徑(如 './pages')或絕對路徑(如 '/Users/name/project/html')。

4.擴(kuò)展性

  • 可將 content 改為 HTML 字符串(使用 new_div.append(BeautifulSoup(html_str, 'html.parser'))
  • 可添加更多屬性,如 id、style 等:attrs={'class': 'xxx', 'id': 'yyy', 'style': 'color:red;'}

5.錯誤處理(進(jìn)階):可加入 try-except 捕獲文件讀寫異常,避免腳本中斷。

五、總結(jié)

通過這兩個腳本,你可以:

  • 快速為整個網(wǎng)站添加統(tǒng)一的頂部提示
  • 批量注入統(tǒng)計代碼、客服浮窗、多語言切換按鈕等
  • 自動化完成重復(fù)性 HTML 修改任務(wù)

Python + BeautifulSoup 是前端工程自動化的利器! 掌握它,讓你從繁瑣的手動操作中解放出來。

到此這篇關(guān)于Python實現(xiàn)批量在HTML文件中插入自定義div元素的文章就介紹到這了,更多相關(guān)Python HTML插入自定義div內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)Selenium自動化Page模式

    Python實現(xiàn)Selenium自動化Page模式

    這篇文章主要介紹了Python實現(xiàn)Selenium自動化Page模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • numpy 計算兩個數(shù)組重復(fù)程度的方法

    numpy 計算兩個數(shù)組重復(fù)程度的方法

    今天小編就為大家分享一篇numpy 計算兩個數(shù)組重復(fù)程度的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 詳解Python編程中包的概念與管理

    詳解Python編程中包的概念與管理

    這篇文章主要介紹了Python編程中包的概念與管理,包括包管理工具pip的基本安裝使用,需要的朋友可以參考下
    2015-10-10
  • python實現(xiàn)員工管理系統(tǒng)

    python實現(xiàn)員工管理系統(tǒng)

    這篇文章主要介紹了python實現(xiàn)員工管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解

    對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解

    今天小編就為大家分享一篇對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python re的findall和finditer的區(qū)別詳解

    python re的findall和finditer的區(qū)別詳解

    這篇文章主要介紹了python re的findall和finditer的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 一文帶你掌握Python多線程同步的核心機制與最佳實踐

    一文帶你掌握Python多線程同步的核心機制與最佳實踐

    Python 的 threading 模塊提供了多種同步原語,每種都有其特定的適用場景,本文將詳細(xì)介紹這些核心機制、使用方法和最佳實踐,感興趣的小伙伴可以了解下
    2026-01-01
  • python模糊字符串匹配庫fuzzywuzzy用法及說明

    python模糊字符串匹配庫fuzzywuzzy用法及說明

    fuzzywuzzy庫是一個強大的模糊字符串匹配工具,基于Levenshtein距離算法,它提供了字符串相似度比較、模糊匹配與排序等功能,廣泛應(yīng)用于數(shù)據(jù)清洗、文本匹配和搜索引擎優(yōu)化等場景中
    2025-11-11
  • pytorch 自定義卷積核進(jìn)行卷積操作方式

    pytorch 自定義卷積核進(jìn)行卷積操作方式

    今天小編就為大家分享一篇pytorch 自定義卷積核進(jìn)行卷積操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python爬蟲實戰(zhàn)之制作屬于自己的一個IP代理模塊

    python爬蟲實戰(zhàn)之制作屬于自己的一個IP代理模塊

    Python爬蟲常常會面臨自己ip地址被封的情況,也許不懂的讀者就只能等ip解封之后再進(jìn)行接下來的操作了,為什么自己不做一個Python模塊專門用于處理這種情況呢?文中對于讀者開發(fā)Python爬蟲肯定有一定的幫助,希望讀者耐心看下去,需要的朋友可以參考下
    2021-06-06

最新評論

柳州市| 壤塘县| 宁夏| 河东区| 漾濞| 张北县| 保亭| 阿拉善右旗| 巢湖市| 清水河县| 阿图什市| 西平县| 东宁县| 禄丰县| 耒阳市| 元氏县| 泽库县| 绵阳市| 邮箱| 大化| 余庆县| 普定县| 类乌齐县| 开原市| 邵阳县| 孙吴县| 穆棱市| 富阳市| 南陵县| 临武县| 家居| 建瓯市| 铜山县| 绩溪县| 涟水县| 冷水江市| 浠水县| 五原县| 碌曲县| 商南县| 宁津县|