查找具有特定 child 和 BeautifulSoup 的元素
Find elements which have a specific child with BeautifulSoup
使用 BeautifulSoup,如何访问具有特定 div
作为 child 的 <li>
?
示例:如何访问 li
的文本(即 info@blah.com),其中 Email
为 child div?
<li>
<div>Country</div>
Germany
</li>
<li>
<div>Email</div>
info@blah.com
</li>
我尝试手动执行:循环所有 li
,并针对每个循环重新循环所有 child div
以检查文本是否电子邮件等,但我确信存在一个更聪明的版本 BeautifulSoup.
有多种方法可以解决这个问题。
一种选择是通过文本定位Email
div并得到next sibling:
soup.find("div", text="Email").next_sibling.strip() # prints "info@blah.com"
您的问题是关于在 <div>
标签内获取 "Email" 的整个 <li>
部分,对吗?这意味着您需要获得以下结果,
<li>
<div>Email</div>
info@blah.com
</li>
如果我理解你的问题正确意味着你需要做以下事情。
soup.find("div", text="Email").parent
或者如果您需要 "info@blah.com" 作为结果,您需要执行以下操作。
soup.find("div", text="Email").next_sibling
如果你只有一个div有内容"Email",你可以这样做
soup.find("div", text="Email").find_parent('li')
使用 BeautifulSoup,如何访问具有特定 div
作为 child 的 <li>
?
示例:如何访问 li
的文本(即 info@blah.com),其中 Email
为 child div?
<li>
<div>Country</div>
Germany
</li>
<li>
<div>Email</div>
info@blah.com
</li>
我尝试手动执行:循环所有 li
,并针对每个循环重新循环所有 child div
以检查文本是否电子邮件等,但我确信存在一个更聪明的版本 BeautifulSoup.
有多种方法可以解决这个问题。
一种选择是通过文本定位Email
div并得到next sibling:
soup.find("div", text="Email").next_sibling.strip() # prints "info@blah.com"
您的问题是关于在 <div>
标签内获取 "Email" 的整个 <li>
部分,对吗?这意味着您需要获得以下结果,
<li>
<div>Email</div>
info@blah.com
</li>
如果我理解你的问题正确意味着你需要做以下事情。
soup.find("div", text="Email").parent
或者如果您需要 "info@blah.com" 作为结果,您需要执行以下操作。
soup.find("div", text="Email").next_sibling
如果你只有一个div有内容"Email",你可以这样做
soup.find("div", text="Email").find_parent('li')