Alle Inhalte einer Liste verändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nfehren
User
Beiträge: 98
Registriert: Donnerstag 31. Oktober 2013, 15:11

Guten morgen,
ich habe mithilfe der module re und urllib aus einer Internetseite bestimmte Informationen gezogen und in einer Liste abgespeichert.
Jetzt steht aber natürlich bei jedem Listeneintrag z.B. <title>abc</title>.
wie kann ich einen bestimmten Teil bei allen einträgen verändern, dass z.B. nur noch "abc" vorhanden ist?

Vielen Dank und mit freundlichen Grüßen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

nfehren hat geschrieben:Guten morgen,
ich habe mithilfe der module re und urllib aus einer Internetseite bestimmte Informationen gezogen und in einer Liste abgespeichert.
Das ist schon mal kein gutes Vorgehen! Wieso nutzt Du keinen HTML-Parser dafür?
nfehren hat geschrieben: Jetzt steht aber natürlich bei jedem Listeneintrag z.B. <title>abc</title>.
wie kann ich einen bestimmten Teil bei allen einträgen verändern, dass z.B. nur noch "abc" vorhanden ist?
Zum einen ist es in Python oftmals eleganter, eine neue Liste mit den richtigen Inhalten aufzubauen, zum anderen siehe meine erste Antwort - damit hättest Du dieses Problem nämlich gar nicht :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@nfehren: Wieso steht das „natürlich” da so drin? Man hätte ja auch gleich nur 'abc' selektieren können.

Die schlechte Lösung wäre dann wohl die bereits schlechten Lösung konsequent weiterzuführen, Du musst halt ganz offensichtlich eine Schleife über die Elemente der Liste schreiben und bei jedem die Tags entfernen und das Ergebnis in eine neue Liste stecken.

Die gute Lösung wäre es vernünftige Bibliotheken zu verwenden die das ganze nicht nur einfacher sondern insbesondere auch robuster machen. Also zum Beispiel `requests` und BeautifulSoup statt `urllib` und `re`.
Antworten