BeautifulSoupを使用してテキストを含む要素を検索する方法


  1. findメソッドを使用する方法:

    from bs4 import BeautifulSoup
    # HTMLコードを解析する
    html = '''
    <html>
    <body>
    <div>こんにちは、世界!</div>
    <div>こんにちは、皆さん!</div>
    </body>
    </html>
    '''
    soup = BeautifulSoup(html, 'html.parser')
    # テキストを含む最初の要素を検索する
    element = soup.find(text='こんにちは、世界!')
    # 要素のテキストを表示する
    print(element)

    この例では、findメソッドを使用して、テキストが"こんにちは、世界!"である最初の要素を検索しています。

  2. CSSセレクタを使用する方法:

    from bs4 import BeautifulSoup
    # HTMLコードを解析する
    html = '''
    <html>
    <body>
    <div>こんにちは、世界!</div>
    <div>こんにちは、皆さん!</div>
    </body>
    </html>
    '''
    soup = BeautifulSoup(html, 'html.parser')
    # テキストを含む要素を検索する
    element = soup.select_one('div:contains("こんにちは、世界!")')
    # 要素のテキストを表示する
    print(element)

    この例では、select_oneメソッドとCSSセレクタを使用して、テキストが"こんにちは、世界!"である要素を検索しています。