python - how - beautifulsoup: encuentra el hermano del elemento n-ésimo
python scraper beautifulsoup (2)
Si la tag
es la tabla más interna, entonces
tag.findNextSibling(''h2'')
estarán
<h2>This is hell!</h2>
Para obtener literalmente al próximo hermano, puedes usar tag.nextSibling
, que en este caso es u''/n''
.
Si quieres el siguiente hermano que no sea un NavigableString (como u''/n''
), entonces podrías usar
tag.findNextSibling(text=None)
Si quieres el segundo hermano (sin importar de qué se trate), podrías usar
tag.nextSibling.nextSibling
(pero tenga en cuenta que si la tag
no tiene un próximo hermano, entonces tag.nextSibling
será None
, y tag.nextSibling.nextSibling
generará AttributeError
).
Tengo un árbol DOM html complejo de la siguiente naturaleza:
<table>
...
<tr>
<td>
...
</td>
<td>
<table>
<tr>
<td>
<!-- inner most table -->
<table>
...
</table>
<h2>This is hell!</h2>
<td>
</tr>
</table>
</td>
</tr>
</table>
Tengo un poco de lógica para descubrir la mesa más interna. Pero después de haberlo encontrado, necesito obtener el siguiente elemento hermano (h2). ¿Hay alguna forma de que puedas hacer esto?
Cada objeto de etiqueta tiene un atributo nextSibling
que es exactamente lo que está buscando: el próximo hermano (o None
para una etiqueta que es el último hijo de su etiqueta principal, por supuesto).