ホームページ >バックエンド開発 >Python チュートリアル >Python で HTML からクリーンなテキストを効率的に抽出するにはどうすればよいですか?
Python を使用した HTML からのテキストの抽出
目的は、Python で HTML ファイルからテキストを抽出し、得られる出力を複製することです。ブラウザからテキストをコピーしてテキストに貼り付けるeditor.
課題
正規表現は、形式が不十分な HTML に対して十分堅牢ではありません。 Beautiful Soup はよく推奨されますが、JavaScript などの不要なコンテンツを拾い上げ、HTML エンティティの解釈に失敗する可能性があります。
有望な代替案: html2text
ただし、HTML2text の代わりにマークダウンが生成されます。プレーンテキストの場合、html2text は HTML エンティティを正しく処理し、JavaScript を無視します。ただし、そのドキュメントと例は限られています。
テキスト抽出のための最適なコード
以下のコードは、不要な要素をフィルターで除外し、HTML を保持する効果的なソリューションを提供します。エンティティ:
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 scripts and styles for script in soup(["script", "style"]): script.extract() # Extract text text = soup.get_text() # Convert line breaks and remove whitespace 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)
Dependency
このコードを使用するには、BeautifulSoup4 が次のようにインストールされている必要があります:
pip install beautifulsoup4
以上がPython で HTML からクリーンなテキストを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。