Beautiful-soup-parsing-only-section-of-a-document

提供:Dev Guides
移動先:案内検索

Beautiful Soup-ドキュメントのセクションのみを解析

Beautifulsoup4を使用して特定のタイプの情報(<a>タグのみ)を抽出したい状況がいくつかあります。 BeautifulsoupのSoupStrainerクラスを使用すると、受信ドキュメントの特定の部分のみを解析できます。

1つの方法は、SoupStrainerを作成し、それをBeautifulsoup4コンストラクターにparse_only引数として渡すことです。

スープストレーナー

SoupStrainerは、抽出するパーツをBeautifulSoupに通知し、解析ツリーはこれらの要素のみで構成されます。 必要な情報をHTMLの特定の部分に絞り込むと、検索結果が速くなります。

product = SoupStrainer('div',{'id': 'products_list'})
soup = BeautifulSoup(html,parse_only=product)

上記のコード行は、タグサイト内にある可能性がある製品サイトのタイトルのみを解析します。

同様に、上記のように他のsoupStrainerオブジェクトを使用して、HTMLタグから特定の情報を解析できます。 以下はいくつかの例です-

from bs4 import BeautifulSoup, SoupStrainer

#Only "a" tags
only_a_tags = SoupStrainer("a")

#Will parse only the below mentioned "ids".
parse_only = SoupStrainer(id=["first", "third", "my_unique_id"])
soup = BeautifulSoup(my_document, "html.parser", parse_only=parse_only)

#parse only where string length is less than 10
def is_short_string(string):
   return len(string) < 10

only_short_strings =SoupStrainer(string=is_short_string)