2017-05-03 4 views
0

Ich mag einen HTML-Code analysieren, die wie folgt aussieht:mit Schöner Suppe Parsing

<div> 
<span>Current Status</span>FINAL DECISION </div> 
<div> 
<span>Applicant</span>GC Planning Partnership Ltd </div> 
<div> 
<span>Agent</span>GC Planning Partnership Ltd </div> 
<div> 
<span>Wards</span>Springfield Ward </div> 
<div> 
<span>Location Co ordinates</span>Easting 534379 Northing 187690 </div> 
<div> 
<span>Parishes</span> </div> 
<div> 
<span>OS Mapsheet</span>  </div> 
<div> 

Nun will ich nicht, um den Text zu erhalten, die sie zwischen den <span>-Tags ist, sondern die Informationen direkt danach. Aus dem obigen Beispiel möchte ich die Werte wie "Endgültige Entscheidung", "Springfield Ward" oder ähnliches extrahieren. Ich bin sehr neu beim Parsen von HTML und ich habe keine Ahnung, wie ich dorthin komme.

Ich wäre sehr glücklich für jeden Hinweis oder Idee!

Vielen Dank!

Antwort

2

Wenn Sie den Text nach einem span Element mit einem bestimmten Text wollen - können Sie das span Element von Text zuerst finden und dann bekommen die .next_sibling:

soup.find("span", text="Current Status").next_sibling 

Wenn, obwohl Sie Schleife zu wollen, über die ganze span Elemente und für jedes Element span bekommen den nächsten Text Geschwister:

from bs4 import BeautifulSoup, NavigableString 

for span in soup.find_all("span"): 
    next_text = span.next_sibling 
    if isinstance(next_text, NavigableString): 
     print(next_text) 
Verwandte Themen