2017-10-05 141 views
0

我有這行代碼:如何使用BeautifulSoup3選擇位於div標籤內的span標籤中的文本?

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的情況下執行此操作,而不是選擇第一個跨度的第一個&?

+0

爲什麼不通過訪問這些跨度他們的位置? – RomanPerekhrest

+0

怎麼樣?你的意思是輸入'scoreline_div.span [0]'?它不起作用,給我一個錯誤 –

+0

容易與'n型的'選擇器 – RomanPerekhrest

回答

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