使用 BeautifulSoup 查找具有特定子元素的元素

Bas*_*asj 6 python beautifulsoup html-parsing

使用 BeautifulSoup,如何访问<li>具有特定div子项的子项?

li示例:如何访问具有Email子 div的文本(即 info@blah.com) ?

<li>
  <div>Country</div>
  Germany
</li>
<li>
  <div>Email</div>
  info@blah.com
</li>
Run Code Online (Sandbox Code Playgroud)

我尝试手动执行此操作:在所有 上循环li,对于每个子项,在所有子项上重新循环div以检查文本是否为电子邮件等。但我确信存在一个更聪明的 BeautifulSoup 版本。

ale*_*cxe 5

有多种方法可以解决这个问题。

一种选择是通过文本Email定位div并获取下一个同级

soup.find("div", text="Email").next_sibling.strip()  # prints "info@blah.com"
Run Code Online (Sandbox Code Playgroud)