Ich benutze Scrapy, um Daten von einer Reihe von Websites zu sammeln. Ich verwende w3lib.html.remove_tags mit Verfassen in meinen ScrapyField() - Deklarationen, um den HTML-Code vollständig zu leeren, bis auf einfache Formatierungs-Tags: b, em, strong, i und br. Ich habe dann eine Pipeline, um es in saubereres, einheitlicheres HTML für die Anzeige auf einer anderen Website wieder aufzubauen.scrapy/lxml.html: Consolidate mehrere aufeinanderfolgende <br> Tags
Viele der scrapped HTML endet mit mehreren aufeinander folgenden br-Tags, die ich zu einem einzigen br-Tag pro Auftreten zusammengeführt werden müssen. Die akzeptierte Antwort auf diese Frage: Merge multiple <br /> tags to a single one with python lxml erreicht genau dies, aber nur, wenn die
Tags nicht durch Leerzeichen getrennt sind. Angenommen, einer meiner ItemLoaders gibt die folgende Zeichenfolge zurück:
<div class="info"> <br> <br> <p class="tight"><br> Some text</p><br> <br></div>
Die oben genannte Lösung funktioniert nicht auf ihnen. Wie ist es möglich, diese zu konsolidieren? Ich suche nach einer Nicht-RegEx-Lösung. Es scheint, dass lxml in der Lage sein sollte, damit umzugehen, aber ich kann nicht herausfinden, wie.
Ich denke nicht, jeder Nicht-regex Lösung, warum Sie nicht wollen, Regex benutzen? – Umair
Interessiert, den Grund für die downvotes zu kennen. – NFB