Beautiful soup 获取匹配标签值之后的标签值

Beautiful soup get tag values that follow after the matched tag value

我有一个代码,我需要在其中查找具有值 'Lead' 的 div 标签,一旦在代码中找到该标签,它就会立即查找 div使用值 'name' 然后在紧接着的下一个标签中提取电子邮件 ID,这样我的代码就可以输出名称和电子邮件 ID,如下所示

李四john.doe@johndoe.com

 <div class="badge memberType Member long notAffiliatedContact">Lead</div>
 <div class="name"><a href="/10016/John Doe">John Doe</a></div>
 <div class="posted"><span class="label">Email: </span><span class="value break-word">john.doe@johndoe.com</span></div>

非常感谢。

您可以使用 findNext() 找到下一个元素。

from bs4 import BeautifulSoup

html = """
<div class="badge memberType Member long notAffiliatedContact">Lead</div>
 <div class="name"><a href="/10016/John Doe">John Doe</a></div>
 <div class="posted"><span class="label">Email: </span><span class="value break-word">john.doe@johndoe.com</span></div>
 """
soup = BeautifulSoup(html, 'html.parser')
divs = soup.findAll("div", {"class": "badge"})
for div in divs:
    if div.text == "Lead":
        name = div.findNext('div')
        email = name.findNext('span').findNext('span')
print(name.text, email.text)
#John Doe john.doe@johndoe.com