使用Python 從HTML 檔案中提取乾淨的文字
當尋求使用Python 從HTML 檔案中提取文字時,重要的是要考慮魯棒性和準確性。雖然正規表示式通常可以完成這項工作,但它們可能會遇到格式不良的 HTML。
對於更強大的解決方案,通常建議使用 Beautiful Soup 等函式庫。然而,使用者可能會遇到不必要的文字的挑戰,例如 JavaScript 來源和不正確的 HTML 實體解釋。
要解決這些問題,需要更全面的方法。
html2text:一個有前途的解決方案
一個有前途的解決方案是 html2text。該程式庫正確處理 HTML 實體並忽略 JavaScript。然而,它產生 Markdown 而不是純文本,需要額外的處理來轉換它。
利用 BeautifulSoup 和自訂程式碼
另一種方法是將 BeautifulSoup 與自訂程式碼。透過刪除不需要的元素(例如腳本和樣式)並利用 get_text() 方法,您可以獲得乾淨的文字表示形式,而無需僅依賴正規表示式。
以下是示範此方法的Python 程式碼片段:
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") # Remove script and style elements for script in soup(["script", "style"]): script.extract() # Extract text text = soup.get_text() # Additional processing to remove unwanted whitespace and split headlines into separate lines 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)
這種方法允許您從HTML 檔案中提取乾淨的、人類可讀的文本,而沒有正規表示式或庫可能無法處理所有場景的缺點有效。
以上是如何在 Python 中從 HTML 檔案中提取乾淨的文本,同時避免正規表示式的陷阱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!