如何使用BeautifulSoup3选择位于div标签内的span标签中的文本?

时间:2017-10-05 16:30:24

标签: python python-3.x beautifulsoup

我有这行代码:

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

它在页面上选择一个div标签页面,它的外观如下:

span

如何选择第一个和第三个class(南非,澳大利亚)的文字?此外,span标记的类别也会更改,因此我可以在不搜索invert的情况下进行更改,而不是选择第一个&amp;第三跨?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您可以使用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'