Pythonのbeautifulメソッド find_parents()、find_parent()

PythonのBeautiful Soupライブラリには、要素の親要素を検索するためのfind_parents()メソッドとfind_parent()メソッドがあります。これらのメソッドは、HTMLやXMLドキュメント内で指定された条件に一致する親要素を検索するために使用されます。

  1. find_parents()メソッド:
    • find_parents()メソッドは、指定した条件に一致するすべての親要素をリストとして返します。
    • このメソッドは、Beautiful Soupの要素オブジェクト(タグ)に対して呼び出されます。
    • 例えば、特定のクラス属性を持つ親要素を見つける場合などに使用できます。
python
from bs4 import BeautifulSoup

html_doc = """
<html>
  <body>
    <div class="container">
      <p>これは段落です。</p>
    </div>
  </body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
paragraph = soup.p  # <p>要素を選択

parents = paragraph.find_parents(class_='container')  # 'container'クラスを持つ親要素を検索

for parent in parents:
    print(parent)
  1. find_parent()メソッド:
    • find_parent()メソッドは、指定した条件に一致する最初の親要素を返します。find_parents()メソッドとは異なり、最初の一致する要素のみを取得します。
    • このメソッドもBeautiful Soupの要素オブジェクトに対して呼び出されます。
python
from bs4 import BeautifulSoup

html_doc = """
<html>
  <body>
    <div class="container">
      <p>これは段落です。</p>
    </div>
  </body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
paragraph = soup.p  # <p>要素を選択

parent = paragraph.find_parent(class_='container')  # 'container'クラスを持つ最初の親要素を検索

print(parent)

上記のコード例では、find_parents()メソッドとfind_parent()メソッドを使用して、<p>要素の親要素としてclass属性が"container"と一致する<div>要素を検索しています。find_parents()メソッドはすべての一致する親要素をリストとして返し、find_parent()メソッドは最初の一致する親要素を取得します。