BeautifulSoup: basta entrar em uma tag, não importa quantas tags anexas existam
Estou tentando raspar todo o html interno do<p>
elementos em uma página da web usando o BeautifulSoup. Existem tags internas, mas não me importo, só quero obter o texto interno.
Por exemplo, para:
<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>
Como posso extrair:
Red
Blue
Yellow
Light green
Nem.string
nem.contents[0]
faz o que eu preciso. Nem faz.extract()
, porque não quero especificar as tags internas com antecedência. Quero lidar com as que possam ocorrer.
Existe um tipo de método 'apenas obtenha o HTML visível' no BeautifulSoup?
----ATUALIZAR------
Por conselho, tentando:
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
Mas isso não ajuda - ele imprime:
0Red
1
2Blue
3
4Yellow
5
6Light
7green
8