Suchen und Ersetzen in HTML mit BeautifulSoup

8

Ich möchte BeautfulSoup verwenden, um <\a> mit <\a><br> zu suchen und zu ersetzen. Ich weiß, wie man mit urllib2 öffnet und dann analysiert, um alle <a> -Tags zu extrahieren. Ich möchte das schließende Tag mit dem schließenden Tag und dem Bruch suchen und ersetzen. Jede Hilfe, sehr geschätzt.

BEARBEITEN

Ich würde annehmen, dass es ähnlich wäre wie:

%Vor%

In der Dokumentation gibt es:

%Vor%

Ich würde also annehmen, dass es wie folgt aussehen würde:

%Vor%

Aber das funktioniert nicht und die Python-Hilfe () gibt nicht viel

    
Kevin 15.01.2010, 17:29
quelle

3 Antworten

15

Dies fügt ein <br> -Tag nach dem Ende jedes <a>...</a> -Elements ein:

%Vor%

Sie können soup.findAll(tag = '</a>') nicht verwenden, weil BeautifulSoup die End-Tags nicht separat behandelt - sie werden als Teil desselben Elements betrachtet.

Wenn Sie die Elemente <a> in ein Element <p> einfügen möchten, während Sie in einem Kommentar fragen, können Sie Folgendes verwenden:

%Vor%

Erneut erstellen Sie die <p> und </p> nicht separat, da sie Teil derselben Sache sind.

    
interjay 15.01.2010, 17:56
quelle
4

Angenommen, Sie haben ein Element, von dem Sie wissen, dass es die Markup-Tags "br" enthält, eine Möglichkeit, & amp; Ersetzen Sie die "br" -Tags mit einer anderen Zeichenfolge wie folgt:

%Vor%     
KingChintz 07.07.2015 08:17
quelle
3

Sie ersetzen kein End-Tag; In BeautifulSoup handelt es sich um ein Dokumentobjektmodell wie in einem Browser, nicht um eine Zeichenfolge, die voll von HTML ist. Sie können also kein End-Tag "ersetzen", ohne auch das Start-Tag zu ersetzen.

Was Sie tun möchten, ist ein neues <br> Element unmittelbar nach dem <a>...</a> Element einzufügen. Dazu müssen Sie den Index des Elements <a> innerhalb des übergeordneten Elements ermitteln und das neue Element unmittelbar nach diesem Index einfügen. zB.

%Vor%     
bobince 15.01.2010 17:57
quelle

Tags und Links