ホームページ > バックエンド開発 > Python チュートリアル > Python はどのようにして HTML からプレーン テキストを効率的に抽出し、エンティティや不要なコンテンツを処理できるのでしょうか?

Python はどのようにして HTML からプレーン テキストを効率的に抽出し、エンティティや不要なコンテンツを処理できるのでしょうか?

Patricia Arquette
リリース: 2024-11-29 20:12:11
オリジナル
654 人が閲覧しました

How Can Python Efficiently Extract Plain Text from HTML, Handling Entities and Unwanted Content?

Python を使用した HTML からのプレーン テキストの抽出

HTML ファイルからテキスト コンテンツを取得するには、堅牢性を考慮することが重要です。 HTML エンティティを正しく効果的に処理するメソッド。正規表現を使用したソリューションには限界があるかもしれませんが、Beautiful Soup のようなライブラリはより洗練されたオプションを提供します。ただし、不要なテキストのキャプチャとエンティティの解釈に関する問題は残ります。

Beautiful Soup: 注意事項のある強力なツール

Beautiful Soup は HTML 解析によく使われますが、 JavaScript ソースなどの追加要素を取得し、HTML エンティティの解釈に失敗する可能性があります。たとえば、シーケンス 'ソース コード内の は、抽出されたテキストではアポストロフィに変換されません。

html2text の入力: 有望な解決策

現在、html2text が有力なオプションとして浮上しています。 HTML エンティティを簡単に処理し、JavaScript などの不必要なコンテンツを無視します。プレーン テキストの代わりにマークダウンを出力しますが、これは簡単に変換できます。

堅牢でカスタマイズ可能なアプローチ

次のコード スニペットは Beautiful Soup を活用し、制御を強化しています。抽出プロセス:

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 unwanted elements like scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract the text content
text = soup.get_text()

# Preprocess the text for improved readability
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)
ログイン後にコピー

このアプローチを採用すると、必要なコンテンツと不要なコンテンツの両方を処理しながら、プレーン テキストを効果的に抽出できます。あなたの要件に応じて。

以上がPython はどのようにして HTML からプレーン テキストを効率的に抽出し、エンティティや不要なコンテンツを処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート