BeautifulSoup: Geht einfach in ein Tag, egal wie viele umschließende Tags es gibt
Ich versuche, alle inneren HTML aus dem @ kratz<p>
-Elemente in einer Webseite mit BeautifulSoup. Es gibt interne Tags, aber es ist mir egal, ich möchte nur den internen Text erhalten.
Zum Beispiel für:
<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>
Wie kann ich extrahieren:
Red
Blue
Yellow
Light green
Weder.string
Noch.contents[0]
macht was ich brauche. @ Auch nic.extract()
, da ich die internen Tags nicht im Voraus angeben muss - ich möchte mich mit allen möglichen Problemen befassen.
Gibt es in BeautifulSoup eine Methode, mit der Sie einfach das sichtbare HTML abrufen können?
----AKTUALISIEREN-----
Auf Empfehlung, versuchen:
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
Aber das hilft nicht - es druckt aus:
0Red
1
2Blue
3
4Yellow
5
6Light
7green
8