ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して HTML ファイルからクリーン テキストを効率的に抽出するにはどうすればよいですか?

Python を使用して HTML ファイルからクリーン テキストを効率的に抽出するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-29 03:54:09
オリジナル
678 人が閲覧しました

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

Python を使用した HTML ファイルからのテキストの抽出: 総合ガイド

概要

テキストの抽出HTML ファイルからの .html ファイルは、さまざまなデータ処理および分析タスクに不可欠な場合があります。正規表現は単純な HTML 構造には使用できるかもしれませんが、形式が不十分なコードでは困難になる可能性があります。この記事では、強力な代替手段である Beautiful Soup について検討し、不要な JavaScript を効果的に削除し、HTML エンティティを解釈する実用的なソリューションを提供します。

Beautiful Soup の使用

テキストを抽出するには、 Beautiful Soup、次の手順に従います:

  1. BeautifulSoup をインポートするlibrary.
  2. urlopen() を使用して HTML ファイルを開きます。
  3. BeautifulSoup(html, features="html.parser") で BeautifulSoup オブジェクトを作成します。
  4. 不要な要素を削除します (例: スクリプトとスタイル) for script inSoup(["script", "style"]): script.extract().
  5. soup.get_text() でテキストを抽出します。
  6. テキストを行に分割し、テキスト内の行の lines = (line.strip() で空白を取り除きます。 .splitlines()).
  7. 複数の見出しをチャンクで区切る = (phrase.strip() for line in line for line.split(" ")) のフレーズ.
  8. 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 中国語 Web サイトの他の関連記事を参照してください。

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