Pythonのbeautifulメソッド find_all_next()、find_next()

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

  1. find_all_next()メソッド:
    • find_all_next()メソッドは、指定した条件に一致するすべての後続の要素をリストとして返します。
    • このメソッドは、Beautiful Soupの要素オブジェクト(タグ)に対して呼び出されます。
    • 例えば、指定した条件に一致するすべての要素を後続から検索したい場合に使用できます。
python
from bs4 import BeautifulSoup

html_doc = """
<html>
  <body>
    <p>これは段落1です。</p>
    <p>これは段落2です。</p>
    <p>これは段落3です。</p>
  </body>
</html>
"""

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

next_paragraphs = paragraph.find_all_next('p')  # 後続のすべての<p>要素を検索

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

html_doc = """
<html>
  <body>
    <p>これは段落1です。</p>
    <p>これは段落2です。</p>
    <p>これは段落3です。</p>
  </body>
</html>
"""

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

next_p = paragraph.find_next('p')  # 最初の後続の<p>要素を検索

print(next_p.text)

上記のコード例では、find_all_next()メソッドとfind_next()メソッドを使用して、指定した条件に一致する後続の要素を検索しています。find_all_next()メソッドはすべての一致する要素をリストとして返し、find_next()メソッドは最初の一致する要素を取得します。