BeautifulSoup による Web ページ テキストの抽出: 表示テキストのみを抽出
Web スクレイピングでは、Web ページから特定のテキスト コンテンツを取得することがよくあります。広く使用されている HTML 解析ライブラリである BeautifulSoup を使用すると、スクリプト、コメント、CSS などの不要な要素を除外して、Web ページ上の表示テキストのみを抽出するという課題に遭遇することがあります。
表示テキストの識別
特定の HTML 要素に表示テキストが含まれているかどうかを判断するには、tag_visible 関数を使用できます。この関数は、ターゲット要素の親要素が特定の除外タグ セット (スタイル、スクリプト、ヘッドなど) 内にあるかどうか、またはターゲット要素がコメントであるかどうかをチェックします。いずれかの条件が満たされる場合、関数は False を返し、要素が表示可能とみなされないことを示します。
表示テキストの抽出
Web ページから表示テキストを抽出するには、次の手順に従ってください:
例使用法
以下のコードは、これらの手法を使用して Web ページから表示テキストを抽出する方法を示しています。
from bs4 import BeautifulSoup from bs4.element import Comment import urllib.request def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return u" ".join(t.strip() for t in visible_texts) html = urllib.request.urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
このアプローチを利用することで、Web から表示テキストを効率的にスクレイピングできます。ページを削除し、スクリプト、コメント、その他の非表示要素から無関係なコンテンツを除外します。
以上がBeautifulSoupを使用してWebページから可視テキストのみを抽出する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。