2

在通过使用 soup.findAll 搜索 HTML 找到我想要的内容之后,我将如何使用 bs4 获取下一个兄弟姐妹

<td class="name">David<span class="flag away"</span>
</td>
    <td class="team">b<span class="team b"></span></td>
    <td class="time">99'</td>

<td class="name">James<span class="flag home"</span>
</td>
    <td class="team">a<span class="team a"></span></td>
    <td class="time">99'</td>

使用 find all 我可以找到文本

for t in soup.findAll(text='David'):
>> David

但是我想要的输出是

<td class="team">b<span class="team b"></span></td>
<td class="time">99'</td>
4

1 回答 1

7
from bs4 import BeautifulSoup as soup, Tag


input = """<td class="name">David<span class="flag away"</span>
</td>
    <td class="team">b<span class="team b"></span></td>
    <td class="time">99'</td>

<td class="name">James<span class="flag home"</span>"""

web_soup = soup(input)
for t in web_soup.findAll(text='David'):
    for item in t.parent.next_siblings:
        if isinstance(item, Tag):
            if 'class' in item.attrs and 'name' in item.attrs['class']:
                break
            print item

印刷:

<td class="team">b<span class="team b"></span></td>
<td class="time">99'</td>

希望那是你想要的。

于 2013-06-07T11:06:03.777 回答