Ich versuche, schöne Suppe zu verwenden, um Wohnungspreisdaten von Zillow zu kratzen.Unter Verwendung der schönen Suppe, um spezifische Klasse zu finden
Ich bekomme die Webseite nach Eigenschaft ID, z. http://www.zillow.com/homes/for_sale/18429834_zpid/
Wenn ich die find_all()
Funktion versuchen, ich erhalte keine Ergebnisse:
results = soup.find_all('div', attrs={"class":"home-summary-row"})
Allerdings, wenn ich die HTML-nehmen und es bis auf die Lautstärke nur die Bits Ich möchte, zB .:
<html>
<body>
<div class=" status-icon-row for-sale-row home-summary-row">
</div>
<div class=" home-summary-row">
<span class=""> $1,342,144 </span>
</div>
</body>
</html>
Ich bekomme 2 Ergebnisse, beide <div>
s mit der Klasse home-summary-row
. Also, meine Frage ist, warum bekomme ich keine Ergebnisse beim Durchsuchen der ganzen Seite?
Arbeitsbeispiel:
from bs4 import BeautifulSoup
import requests
zpid = "18429834"
url = "http://www.zillow.com/homes/" + zpid + "_zpid/"
response = requests.get(url)
html = response.content
#html = '<html><body><div class=" status-icon-row for-sale-row home-summary-row"></div><div class=" home-summary-row"><span class=""> $1,342,144 </span></div></body></html>'
soup = BeautifulSoup(html, "html5lib")
results = soup.find_all('div', attrs={"class":"home-summary-row"})
print(results)
Das hat den Trick gemacht. Ich habe versucht, fehlende Tags mit dem Auge zu suchen, aber es gab zu viel Code. W3.Der Validator ist eine großartige Ressource, die mir nicht bekannt war. Vielen Dank! – SFBA26