几个元素具有相同的类名。当他们每隔一页更改位置时,我遇到的问题是抓住了正确的问题。
有时候这是第一个,介于两者之间。
是否可以使用文本messages
作为参考来获取下一个跨度文本?
我只需要名字。
当它在正确的位置时可以使用
"CEO"
答案 0 :(得分:1)
使用find(text ='CEO'),然后使用nextSibling查找元素,尝试以下操作
from bs4 import BeautifulSoup
html = '<div class="DetailsList">' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div> ' \
'<div class="KeyDetail">...</div> ' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div>' \
'<span class="header">Hello</span>' \
'<span class="text">Joe Smith</span></div> ' \
'<div class="DetailsList">' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div> ' \
'<div class="KeyDetail">...</div> ' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div>' \
'<div class="KeyDetail">...</div>' \
'<span class="header">CEO</span>' \
'<span class="text">Ryan Evans</span></div> '
soup = BeautifulSoup(html, features="lxml")
for span in soup.find_all('span'):
if span.find(text='CEO'):
ceo_name = span.nextSibling
print(ceo_name.text)
打印
Ryan Evans