元素共享类名并动态移动Python / BS4

时间:2020-04-17 00:08:10

标签: python python-3.x beautifulsoup

几个元素具有相同的类名。当他们每隔一页更改位置时,我遇到的问题是抓住了正确的问题。

有时候这是第一个,介于两者之间。

是否可以使用文本messages作为参考来获取下一个跨度文本?

我只需要名字。

当它在正确的位置时可以使用

"CEO"

1 个答案:

答案 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