2017-04-11 9 views
0

Ich versuche, die Eigenschaften eines Hauses und die entsprechenden Werte zu extrahieren. Ich bin daran interessiert {key: {Art der Immobilie: Gewerbeimmobilie, Kaufpreis: CHF 475,000, usw.}Scraping einer Tabelle

Ich konnte die Werte einzeln extrahieren, aber nicht als Schleife, die mein Wörterbuch aktualisiert.

<dl class="row xsmall-up-2 medium-up-3 large-up-4 attributes-grid"> 
    <div class="column"> 
     <dt class="label-text"> 
      Property type 
     </dt> 
     <dd> 
Commercial property   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Purchase price 
     </dt> 
     <dd> 
CHF 475,000   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Floor space 
     </dt> 
     <dd> 
114 m&sup2;   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Floor 
     </dt> 
     <dd> 
1. floor    </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Year of construction 
     </dt> 
     <dd> 
1989   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Balcony/ies 
     </dt> 
     <dd> 
       <i class="fa fa-check text-green" aria-hidden="true"></i> 
     </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Indoor parking 
     </dt> 
     <dd> 
       <i class="fa fa-check text-green" aria-hidden="true"></i> 
     </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Outdoor parking 
     </dt> 
     <dd> 
       <i class="fa fa-check text-green" aria-hidden="true"></i> 
     </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Lift 
     </dt> 
     <dd> 
       <i class="fa fa-check text-green" aria-hidden="true"></i> 
     </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Cable TV 
     </dt> 
     <dd> 
       <i class="fa fa-check text-green" aria-hidden="true"></i> 
     </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Public transport stop 
     </dt> 
     <dd> 
150 m   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Motorway 
     </dt> 
     <dd> 
500 m   </dd> 
    </div> 
    <div class="column"> 
     <dt class="label-text"> 
      Shops 
     </dt> 
     <dd> 
300 m   </dd> 
    </div> 
</dl> 
+0

Was haben Sie erreicht, bevor Sie Ihre Frage stellen? Gib uns dein Code-Snippet! –

Antwort

1

In Anbetracht der HTML-Text die von Ihnen, die als String in table_text gespeichert ist.

from bs4 import BeautifulSoup 
soup = BeautifulSoup(table_text,"lxml") 
temp_dict = {} 
for d in soup.find_all("div",{"class":"column"}): 
    temp_dict[d.find("dt").text.strip()] = d.find("dd").text.strip() 
print(temp_dict) 

Ich vermute, die HTML-Text zur Verfügung gestellt Sie für nur eine Zeile der Tabelle war, wenn Sie dies für alle Zeilen wollen, Schleife über sie und halten ein Wörterbuch Eltern, wo Sie Zeile als Schlüssel und temp_dict aktualisieren als ein Wert in jeder Iteration. Dies wird Ihnen die Struktur geben, die Sie wollten.

Verwandte Themen