2017-06-10 3 views
0

Set-upAusgabe Schaben ul Abschnitt von Seite

I Wohnungsanzeigen mit scrapy bin Schaben.

Ich sammle erfolgreich die meisten Eigenschaften der Wohnung pro Anzeige, um sie anschließend mit Pandas zu analysieren.


Problem

ich nicht einen gewissen zu kratzen ul auf einer Ad-Seite erscheinen kann. Das Problem betrifft die Abschnitte "Hauptmerkmale" und "Extras" auf jeder Wohnungs-Anzeigenseite: z. this one.

Wenn ich versuche, die Elemente zu kratzen, erhalte ich eine leere Rückgabe.


Tries

Ich habe versucht,

response.css("section.divFeatures") # empty 

response.css("div.detail-section-content::text", # gives me the property location (strange) 
     ).extract() 

response.css("#divFeatures").extract() # empty 

'Extras' folgendes zu erhalten Und die Liste Gos auf.

Was mache ich falsch, und wie bekomme ich die Elemente erfolgreich?

+0

Das ist, weil diese Daten durch Javascript mit [dieser] (http://www.fotocasa.es/ws/DetailModular.asmx/GetPrincipalFeatures?adId=142804619&promotionId=0&tti=3&periodicityId=3&culture=en-US) url geladen wird – Casper

+0

Danke Casper! Nur für mein Verständnis, die URL in Ihrem Kommentar, wäre das Scrapable? Und wenn ja, hast du es irgendwo aus dem Code der Seite geholt? – LucSpan

+0

Ja, dass URL wäre Scrapable. Ich bin mir nicht sicher, ob es bessere Möglichkeiten gibt zu sehen, woher die Daten kommen, aber ich öffne nur das Inspektionsfenster in Chrome und suche dann auf der Registerkarte Netzwerk nach, welche Daten geladen werden. Schließlich finden Sie eine Seite wie diese mit den benötigten Informationen. – Casper

Antwort

0

Sie können die von @Casper erwähnte Seite direkt abfragen ... oder Sie können eine Engine verwenden, die das Javascript ausführt und das DOM für Sie wie einen normalen Webbrowser bearbeitet und den HTML-Code nach der Bearbeitung erhält.

Selen + ChromeDriver (+ XVFB, wenn Sie kopflos laufen wollen) oder phantomjs usw. Diese werden alle Javascript auf einer Webseite ausführen und haben genau die gleiche Struktur wie Sie sehen, wenn Sie das Inspect-Panel in Chrom öffnen.