HTML 轉純文字
當您有 HTML(例如:抓取的網頁、電子報內容、RSS 條目的內容)且希望在不添加 beautifulsoup4 或 lxml 的情況下獲得乾淨、可讀的純文字時,請使用此技能。一個小型的 HTMLParser 子類別會移除 <script>/<style>,將區塊元素轉換為換行符號,並壓縮空白,這正是您在將內容送給 LLM(減少 token)或放入搜尋索引前所需的格式。
何時使用
- 使用者說:「從這個 HTML 中取出文字」、「清理這個抓取的頁面」、「在摘要前移除標籤」、「將此電子郵件 HTML 轉為文字」。
- HTML 即將被餵給模型或摘要,而標記只是雜訊。
何時不要使用
- 您需要保留結構(表格、連結作為 Markdown)——請使用真正的 HTML-to-Markdown 轉換器。
- 頁面是由 JavaScript 渲染的——請先用無頭瀏覽器擷取,然後再轉換。
具體範例
使用者輸入:
將這篇文章的 HTML 轉為純文字,以便我用更少的 token 來摘要。
輸出:
# 將 assets/htmltext.py 複製到您的專案中,然後:
from htmltext import html_to_text
text = html_to_text(article_html)
summary = call_llm(f"摘要:\n{text}")
<script> 和 <style> 區塊會被完全移除,區塊標籤變成換行符號,連續的空格和空行會被壓縮,因此輸出讀起來就像散文。
套用的模式
- 繼承
html.parser.HTMLParser,設定convert_charrefs=True以自動解碼實體。 - 追蹤
script/style/head的跳過深度,確保它們的文字永遠不會洩漏到輸出中。 - 在區塊標籤前後插入換行,然後壓縮行內空白及多個空行。
- 保持純粹(字串輸入、字串輸出),以便輕鬆進行單元測試。
參考:assets/htmltext.py。
來源
萃取自作者的爬蟲與摘要流程。v1.0.0。 另請參閱:[[rss-feed-reader]]、[[gemini-cost-tracker]]、[[pipeline-orchestrator]]。
→ 使用 Trawlkit 建立完整的可執行機器人。