BeautifulSoup übergeordneten Tags
Habe ich einige html -, ich will zum extrahieren von text aus. Hier ist ein Beispiel für html:
<p>TEXT I WANT <i> – </i></p>
Nun, es gibt, natürlich, viel <p>
- tags in diesem Dokument. Also find('p')
ist nicht ein guter Weg, um den text extrahieren möchten. Jedoch, dass <i>
- tag ist der einzige in dem Dokument. So, ich dachte, ich könnte einfach den <i>
und gehen Sie dann zu den Eltern.
Ich versucht habe:
up = soup.select('p i').parent
und
up = soup.select('i')
print(up.parent)
und ich habe versucht, es mit .parents
ich habe versucht find_all('i')
, find('i')
... Aber ich bekomme immer:
'list' object has no attribute "parent"
Was mache ich falsch?
InformationsquelleAutor porteclefs | 2014-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert:
Ausgabe:
Wie bereits in anderen Antworten
find_all()
gibt eine Liste, in der Erwägung, dassfind()
gibt das erste match oderNone
Wenn Sie unsicher über die Anwesenheit eines i-tag, Sie könnte einfach mit einem
try/except
blockInformationsquelleAutor Totem
find_all()
eine Liste zurückgibt.find('i')
gibt die ersten passende element, oderNone
.So verwenden:
Demo:
soup.select('.foo').parent
.Nein,
.select()
eine Liste zurückgibt. Es würde die Arbeit mitsoup.select_one('.foo').parent
.mein schlechtes, das ist es, was ich meinte zu schreiben.
InformationsquelleAutor Martijn Pieters
Beide
select()
undfind_all()
kehren Sie ein array von Elementen. Sie sollten tun, wie folgt:InformationsquelleAutor amaslenn
soup.select()
gibt eine Python-Liste. So haben Sie 'unlist' die variablez.B.:
oder
InformationsquelleAutor Chad Frederick