Tengo esta línea de código:

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

Selecciona una página de etiqueta div en la página, así es como se ve:

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

¿Cómo selecciono el texto del primer y tercer span (Sudáfrica, Australia)? Además, las clases de la etiqueta de intervalo cambian, así que ¿puedo hacerlo sin buscar en class y en lugar de seleccionar el primer y tercer intervalo?

0
Alexei Dom 5 oct. 2017 a las 19:30

2 respuestas

La mejor respuesta

Puede utilizar find_all () método y obtenga la lista de intervalos:

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'
1
Alireza Mika 5 oct. 2017 a las 16:57

Solución de una línea:

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

La salida:

South Africa Australia
2
RomanPerekhrest 5 oct. 2017 a las 17:03