Python下生成HTML文檔

一、HTML文件格式

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My test page</title>
  </head>
  <body>
    <p>This is my page</p>
  </body>
</html>

參考鏈接

二、Python下生成HTML文檔

.html 文檔外在表現(xiàn)為許多行包含各個標簽的文本,實際上可將其抽象為一棵標簽樹。

使用 xml.etree.ElementTree 來管理 .html 的標簽樹,并將該樹轉(zhuǎn)換為 .html 文檔。

2.1 基本樹結(jié)構(gòu)

import xml.etree.ElementTree as et

class HtmlTree(object):
    doctype_str = "<!DOCTYPE html>"
    
    def __init__(self):
        self.html_ele = et.Element("html")
        self.head_ele = et.SubElement(self.html_ele, "head")
        self.body_ele = et.SubElement(self.html_ele, "body")
        
        self.charset_ele = et.SubElement(self.head_ele, "meta", attrib={"charset": "utf-8"})
        self.title_ele = et.SubElement(self.head_ele, "title")

2.2 將樹轉(zhuǎn)為字符串

class HtmlTree(object):
    # ...
    def __str__(self):
        html_str = et.tostring(self.html_ele, encoding="unicode")
        return self.doctype_str + '\n' + html_str

2.3 設(shè)置 title

class HtmlTree(object):
    # ...
    def set_title(self, title_str):
        self.title_ele.text = title_str

2.4 設(shè)置 body

class HtmlTree(object):
    # ...
    def set_body(self, body_str):
        body_str = "<body>" + body_str + "</body>"
        body_subtree = et.fromstring(body_str)

        # 復制body元素的內(nèi)容,參考 Element.copy() 函數(shù)源碼
        self.body_ele.text = body_subtree.text
        self.body_ele.tail = body_subtree.tail
        self.body_ele[:] = body_subtree    # 復制子節(jié)點
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,108評論 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,797評論 1 45
  • ···lxml用法源自 lxml python 官方文檔,更多內(nèi)容請直接參閱官方文檔,本文對其進行翻譯與整理。lx...
    小豐豐_72a2閱讀 1,098評論 0 1
  • 簡介瀏覽器可以被認為是使用最廣泛的軟件,本文將介紹瀏覽器的工 作原理,我們將看到,從你在地址欄輸入google.c...
    聽風閣閱讀 3,389評論 0 7
  • 良好的戀愛和婚姻關(guān)系 絕不是以平淡為最終歸宿 不知道最近你和他之間的狀態(tài)是不是這樣的…. 兩個人下班以后各忙各的,...
    花鎮(zhèn)閱讀 237評論 0 0

友情鏈接更多精彩內(nèi)容