Python を使用して HTML ファイルからクリーン テキストを抽出する
Python を使用して HTML ファイルからテキストを抽出しようとする場合は、堅牢性と精度を考慮することが重要です。多くの場合、正規表現で機能しますが、HTML の形式が不十分な場合は苦労する可能性があります。
より堅牢なソリューションには、Beautiful Soup のようなライブラリが一般的に推奨されます。ただし、ユーザーは、JavaScript ソースなどの不要なテキストや、HTML エンティティの誤った解釈などの問題に遭遇する可能性があります。
これらの問題に対処するには、より包括的なアプローチが必要です。
html2text:有望な解決策
有望な解決策の 1 つは 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 中国語 Web サイトの他の関連記事を参照してください。