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

Ответы на вопрос(4)

Ваш ответ на вопрос