Я пытаюсь очистить весь внутренний 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"?
---- UPDATE ------
По совету, пытаясь:
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