PythonのBeautifulSoupライブラリには、要素の兄弟要素を検索するための find_next_siblings()
メソッドと find_next_sibling()
メソッドがあります。これらのメソッドは、HTMLやXMLドキュメント内で指定された条件に一致する兄弟要素を検索するために使用されます。
find_next_siblings()
メソッドは、指定した条件に一致するすべての兄弟要素をリストとして返します。このメソッドは、Beautiful Soupの要素オブジェクト(タグ)に対して呼び出されます。
例えば、同じ階層にある特定のクラス属性を持つ兄弟要素を見つける場合などに使用できます。
from bs4 import BeautifulSoup
HTML_DOC = """
<html>
<head>
<title>Find Next Siblings</title>
</head>
<body>
<p class="languages">1957: FORTRAN</p>
<p class="languages">1972: C</p>
<p class="languages">1983: C++</p>
<p class="languages">1991: Python</p>
<p class="languages">1993: Ruby</p>
<p class="languages">1995: Java</p>
<p class="languages">1995: PHP</p>
<p class="languages">1995: JavaScript</p>
</body>
</html>
"""
def findNextSiblings(html):
soup = BeautifulSoup(html, "html.parser")
element = soup.p
nextSiblings = element.find_next_siblings("p")
for nextSibling in nextSiblings:
print(nextSibling)
find_next_sibling()
メソッドは、指定した条件に一致する最初の兄弟要素を返します。このメソッドは、Beautiful Soupの要素オブジェクト(タグ)に対して呼び出されます。
from bs4 import BeautifulSoup
HTML_DOC = """
<html>
<head>
<title>Find Next Sibling</title>
</head>
<body>
<p class="languages">1957: FORTRAN</p>
<p class="languages">1972: C</p>
<p class="languages">1983: C++</p>
<p class="languages">1991: Python</p>
<p class="languages">1993: Ruby</p>
<p class="languages">1995: Java</p>
<p class="languages">1995: PHP</p>
<p class="languages">1995: JavaScript</p>
</body>
</html>
"""
def findNextSibling(html):
soup = BeautifulSoup(html, "html.parser")
element = soup.p
nextSibling = element.find_next_sibling("p")
print(nextSibling)
これらのメソッドを使用することで、HTMLやXMLドキュメントから必要な情報を効率的に抽出することが可能になります。Webスクレイピングの際には、これらのメソッドを活用してみてください。