BeautifulSoup: solo ingrese a una etiqueta, sin importar cuántas etiquetas adjuntas haya
Estoy tratando de raspar todo el html interno del<p>
elementos en una página web usando BeautifulSoup. Hay etiquetas internas, pero no me importa, solo quiero obtener el texto interno.
Por ejemplo, para:
<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>
¿Cómo puedo extraer:
Red
Blue
Yellow
Light green
Ninguno.string
ni.contents[0]
hace lo que necesito Ni tampoco.extract()
, porque no quiero tener que especificar las etiquetas internas de antemano, quiero tratar con cualquiera que pueda ocurrir.
¿Hay un tipo de método 'solo obtener el HTML visible' en BeautifulSoup?
----ACTUALIZAR------
Por consejo, intentando:
soup = BeautifulSoup(open("test.html"))
p_tags = soup.findAll('p',text=True)
for i, p_tag in enumerate(p_tags):
print str(i) + p_tag
Pero eso no ayuda, imprime:
0Red
1
2Blue
3
4Yellow
5
6Light
7green
8