2016-03-26 5 views
1

Ich war glücklich verschrotten Eigenschaftendaten von www.century21.com mit Python requests und BeautifulSoup. Es gibt Seitenumbruch auf der Website und ich konnte die Ergebnisse der ersten Seite verschrotten, aber als ich das gleiche für die zweite Seite versuchte, bekam ich die Daten der ersten Seite als Ausgabe. HierFordern Sie die zweite Ladung der Seite mit Python

ist ein Beispiel für erste Seite Ergebnisse: http://www.century21.com/real-estate/ada-oh/LCOHADA/#t=0&s=0

Und hier sind die Ergebnisse der zweiten Seite für die gleiche Suchbegriff: http://www.century21.com/real-estate/ada-oh/LCOHADA/#t=0&s=10

Ich habe bemerkt, dass, wenn ich manuell die zweite URL zu öffnen Im Browser werden die Ergebnisse der ersten URL für einige Sekunden angezeigt und dann scheint die Seite vollständig geladen zu sein und die Ergebnisse der zweiten Seite anzuzeigen.

Wie Sie sich vorstellen können, packt Python request die Ergebnisse der ersten Ladung der zweiten Seite, die zufällig mit den Ergebnissen der ersten Seite übereinstimmt. Gleiches, wenn ich die Ergebnisse der dritten Seite anfordere, das vierte und so weiter.

Unten ist mein Code. Wenn Sie es ausführen, wird die Adresse der ersten Eigenschaft der ersten Seite zweimal gedruckt.

Irgendeine Idee, wie man die korrekten Seitenresultate ergreift?

from bs4 import BeautifulSoup 
import requests 

page1=requests.get("http://www.century21.com/real-estate/ada-oh/LCOHADA/#t=0&s=0") 
c1=page1.content 
soup1=BeautifulSoup(c1,"html.parser").find_all("div",{"class":"propertyRow"})[0].find_all("span",{"class":"propAddressCollapse"})[0].text 

page2=requests.get("http://www.century21.com/real-estate/ada-oh/LCOHADA/#t=0&s=10") 
c2=page2.content 
soup2=BeautifulSoup(c2,"html.parser").find_all("div",{"class":"propertyRow"})[0].find_all("span",{"class":"propAddressCollapse"})[0].text 

print(soup1) 
print(soup2) 

Antwort

1

Stellen Anfragen an "search.c21" Endpunkt, die HTML-String aus der "Liste" Schlüssel bekommen und es analysieren:

from bs4 import BeautifulSoup 
import requests 

page1 = requests.get("http://www.century21.com/search.c21?lid=COHADA&t=0&s=0&subView=searchView.AllSubView") 
c1 = page1.json()["list"] 
soup1 = BeautifulSoup(c1, "html.parser").find_all("div", {"class": "propertyRow"})[0].find_all("span", { 
    "class": "propAddressCollapse"})[0].text 

page2 = requests.get("http://www.century21.com/search.c21?lid=COHADA&t=0&s=10&subView=searchView.AllSubView") 
c2 = page2.json()["list"] 
soup2 = BeautifulSoup(c2, "html.parser").find_all("div", {"class": "propertyRow"})[0].find_all("span", { 
    "class": "propAddressCollapse"})[0].text 

print(soup1) 
print(soup2) 

Drucke:

5489 Sr 235 
202 W Highland Ave 
+1

Vielen Dank! Nur eine Frage: Wie sind Sie auf diese URL gekommen? Irgendwelche Logik dahinter? – multigoodverse

+1

@ A. Sicher, ich habe Browser-Entwickler-Tools verwendet und überprüft die Registerkarte Netzwerk, beobachten, welche Anfrage während des Ladens der Seite gesendet wurden .. – alecxe

Verwandte Themen