Entfernen <br> - tags analysiert eine Schöne Suppe Liste?
Ich bin derzeit immer in eine for-Schleife mit allen Zeilen, die ich will:
page = urllib2.urlopen(pageurl)
soup = BeautifulSoup(page)
tables = soup.find("td", "bodyTd")
for row in tables.findAll('tr'):
An dieser Stelle, ich habe meine Informationen, aber die
<br />
tags sind ruiniert meine Leistung.
Was ist der sauberste Weg, diese zu entfernen?
InformationsquelleAutor mamontazeri | 2011-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert, aber es extrahiert den text zwischen den br, also es wird nicht nur entfernen Sie die extra br, werden Sie nicht in der Lage, trennen Sie Ihren text mit br, weil es Sie zu entfernen
In meinem Fall, ist diese Lösung entledigte sich der text rund um die br-tags als gut, so habe ich
e.replace_with(' ')
zu ersetzen br-tags mit einem Leerzeichen.InformationsquelleAutor Kabie
Wenn Sie übersetzen möchten die
<br />
's um Zeilenumbrüche, etwas wie das hier tun:InformationsquelleAutor Mu Mind
ersetzen-tags auf die mit einem Leerzeichen beginnen
Schöne Suppe auch akzeptiert .read() auf dem urlopen Objekt, so sollte das funktionieren - - -
den re.sub ersetzt das br-tag mit einem Leerzeichen
Wenn Sie sicher sind, dass die br-tags konsequent schauen, wie '</br " >, es ist einfacher und schneller zu bedienen Seite.replace('</br>', ' ') statt. Ansonsten ein regulärer Ausdruck könnte besser geeignet sein, als @minocha vorgeschlagen. Siehe: stackoverflow.com/a/5668962
InformationsquelleAutor minocha
Vielleicht
some_string.replace('<br />','\n')
zu ersetzen, der bricht mit newlines.Möchten Sie vielleicht zu prüfen, aus html5lib und lxml, die sind beide ziemlich groß, bei Parsen von html. lxml ist wirklich schnell und html5lib ist äußerst robust ausgelegt.
<br class="fancy-break" />
im HTML? Nur so ein Gedanke.Mit der
re
Modul würde mehr Sinn machen, dann. Das ist ziemlich ungewöhnlich, obwohl.Ich Frage mich nur, wenn
beautifulsoup
analysiert nur - tags oder hat die Attribute nur. Vielleicht Rohrleitungen diese in einem HTML/XML-parser würde auch funktionieren? Aber wenn die OP nur hat<br />
, dann ist alles gut 😉InformationsquelleAutor zeekay