首頁 > 後端開發 > Python教學 > 如何使用 Python 有效率地從 HTML 檔案中提取乾淨的文字?

如何使用 Python 有效率地從 HTML 檔案中提取乾淨的文字?

Patricia Arquette
發布: 2024-11-29 03:54:09
原創
677 人瀏覽過

How Can I Efficiently Extract Clean Text from HTML Files Using Python?

使用Python 從HTML 檔案中擷取文字:綜合指南

「簡介」

介紹

提取文字🎜>

    提取文字HTML 檔案中的資料對於各種資料處理和分析任務至關重要。雖然正規表示式對於簡單的 HTML 結構可能是可行的,但它們可能會遇到格式不良的程式碼。本文探討了強大的替代方案 - Beautiful Soup - 並提供了一個實用的解決方案,可以有效刪除不需要的 JavaScript 並解釋 HTML 實體。
  1. 使用 Beautiful Soup
  2. 使用下列指令擷取文字BeautifulSoup,請依照下列步驟操作:
  3. 匯入 BeautifulSoSoup庫。
  4. 使用 urlopen() 開啟 HTML 檔案。
  5. 使用 BeautifulSoup(html, features="html.parser") 建立 BeautifulSoup 物件。
  6. 刪除不需要的元素(例如,腳本和樣式)與for script in soup(["script", "style"]): script.extract().
使用soup. get_text() 提取文字。

將文字分成幾行並使用lines = (line.strip() for line in text 移除空格.splitlines()).

用區塊分隔多標題= (phrase.strip( ) for line in rows forphrase in line.split(" ")).

刪除帶有text = 'n'.join(chunk for chunk in chunks if chunk) 的空行。
from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")
for script in soup(["script", "style"]):
    script.extract()
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)
登入後複製

代碼示例

  • 這是完整的代碼例如:
  • 其他選項

html2text:處理HTML 實體並忽略 JavaScript 的替代函式庫。但是,它產生的是 Markdown 而不是純文字。

lxml:

一個強大的 XML 和 HTML 解析器庫,也可以在剝離標籤後提取文字。 結論本指南提供了使用從 HTML 文件中提取文本的全面解決方案美麗的湯。透過刪除不需要的元素並解釋 HTML 實體,它有效地產生純文字輸出以供進一步處理和分析。

以上是如何使用 Python 有效率地從 HTML 檔案中提取乾淨的文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板