Ich versuche beautifulsoup zu verwenden, um zuerst die <a>
Tags in der HTML-Zeichenfolge zu entfernen, aber behalte es Inhalt. Danach möchte ich alle Tags entfernen und durch neue Zeilen ersetzen.Schöne Suppe Parsing Fehler
Die Funktion strip_tags ist von This post. Hier
ist ein Beispiel dafür, was ich zu tun versucht:
text = "<p>This is a <a>test</a></p>"
soup = strip_tags(text, ["a"])
plain_text = soup.get_text("\n")
print(plain_text)
Aus irgendeinem Grund die Ausgabe u'This is a \ntest'
ist. Wenn das <a>
Tag bereits ausgezogen ist, warum denkt es dann, dass es noch da ist?
Der erwartete Ausgang ist This is a test
.
Ein komplexeres Beispiel: <p>First</p><a>Link</a><p>Second</p>
Wie kann ich zwischen <p>
Schlagworte zu trennen, und noch in der Lage sein, um den <a>
Tag strippen? Wenn Sie soup.encode_contents()
drucken, ist kein <a>
da.
"Dies ist ein Test". Wenn kein Tag vorhanden ist, sollte keine neue Zeile vorhanden sein. – rabz100
Die Pausen sind nicht, weil es ein "a" -Tag sieht. Dies liegt daran, dass das NavigableString-Element von Soup mehrere Unicode-Strings enthält und die get_text-Funktion das \ n nach jedem Element in der NavigableString-Struktur von supp zeigt. – jinksPadlock
Der Grund, warum es dort hinzugefügt wird, ist 'replacewith', wenn eine einfache Zeichenfolge einen NavigableString – keety