BeautifulSoup: просто попасть внутрь тега, независимо от того, сколько в нем тегов
Я пытаюсь очистить весь внутренний HTML от<p>
элементы на веб-странице, используя BeautifulSoup. Есть внутренние теги, но мне все равно, я просто хочу получить внутренний текст.
Например, для:
<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>
Как я могу извлечь:
Red
Blue
Yellow
Light green
ни.string
ни.contents[0]
делает то, что мне нужно И не делает.extract()
Потому что я не хочу заранее указывать внутренние теги - я хочу разобраться с любыми возможными.
Есть ли в BeautifulSoup метод типа «просто получить видимый HTML»?
----ОБНОВИТЬ------
По совету стараюсь:
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
Но это не помогает - это распечатывает:
0Red
1
2Blue
3
4Yellow
5
6Light
7green
8