PythonのBeautifulSoupでfindNext()関数をどのように使用しますか?
BeautifulSoupのfindNext()メソッドで、currentタグの次の兄弟タグを探すことができます。タグ名、属性、テキスト内容によって検索できます。
findNext() 関数の基本的な使用方法を次に示します。
findNext(name, attrs, text, **kwargs)
このパラメータは次のとおりです。
- name:検索するタグ名を指定します。文字列か正規表現オブジェクトにできます。
- attrs: オプションパラメータで、検索するタグの属性名と値を指定するために使用され、ディクショナリまたはディクショナリリストにすることができます。
- ラベルで検索するテキスト内容を指定するオプション引数です。文字列または正規表現オブジェクトのいずれかを指定できます。
- kwargsオプション引数。 limitやrecursiveなどのその他のキーワード引数を指定するのに使用できます。
以下に簡単なサンプルを示します。findNext() 関数を使用して、次の兄弟ラベルを見つける方法を示します。
from bs4 import BeautifulSoup
html = '''
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Title 1</h1>
<p>Paragraph 1</p>
<h2>Title 2</h2>
<p>Paragraph 2</p>
<h3>Title 3</h3>
<p>Paragraph 3</p>
</body>
</html>
'''
soup = BeautifulSoup(html, 'html.parser')
# 查找<h2>标签的下一个同级标签
next_tag = soup.find('h2').findNext()
print(next_tag)
出力結果です:
<p>Paragraph 2</p>
上の例では、まずBeautifulSoupオブジェクトを作成し、find()関数を用いて最初の
タグを見つけました。 次に、findNext()関数を使って
タグの次の兄弟タグである
タグを探し、その結果を出力しました。
findNext()関数は適合する同レベルの次のタグが見つからなかった場合はNoneを返すことに注意するべきです。そのため、findNext()関数を使用する際には必ず判定処理を行っておくことをお勧めします。