Pythonのbeautifulメソッド find_next_siblings()、find_next_sibling()

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

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

html_doc = """
<html>
  <body>
    <ul>
      <li class="item">Item 1</li>
      <li class="item">Item 2</li>
      <li class="item">Item 3</li>
    </ul>
  </body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
list_item = soup.find('li', class_='item')  # 'item'クラスを持つ最初の<li>要素を選択

siblings = list_item.find_next_siblings(class_='item')  # 'item'クラスを持つ兄弟要素を検索

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

html_doc = """
<html>
  <body>
    <ul>
      <li class="item">Item 1</li>
      <li class="item">Item 2</li>
      <li class="item">Item 3</li>
    </ul>
  </body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
list_item = soup.find('li', class_='item')  # 'item'クラスを持つ最初の<li>要素を選択

sibling = list_item.find_next_sibling(class_='item')  # 'item'クラスを持つ最初の兄弟要素を検索

print(sibling)

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