如何使用BeautifulSoup3在div标记内部的span标记中选择文本?

2024-04-24 16:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一行代码:

scoreline_div = soup.find("div", { "class" : "score-line" })

它在页面上选择一个div标签页,如下所示:

<div class="score-line"><span class="home-team team team-900">South Africa</span><span class="score">27 - 27</span><span class="away-team team team-100">Australia</span></div>

如何选择第一个和第三个span(南非、澳大利亚)的文本?另外,span标记的类也会改变,因此我可以不搜索它的class,而不是选择第一个&;第三跨


Tags: 代码divhomeline页面标签findteam
2条回答

单线解决方案:

s1,s2 = soup.find("div", { "class" : "score-line" }).select('span:nth-of-type(1),span:nth-of-type(3)')
print(s1.text, s2.text)

输出:

South Africa Australia

您可以使用find_all()方法获取跨距列表:

scoreline_div = soup.find("div", { "class" : "score-line" })
spans = scoreline_div.find_all('span')
# spans[0].text should return 'South Africa'
# spans[2].text should return 'Australia'

相关问题 更多 >