Ich komme mit Scrapy nicht durch ein Formular
Ich bin neu im Umgang mit Scrapy und versuche, Informationen von einer Immobilien-Website zu erhalten. Die Site hat eine Homepage mit einem Suchformular (Methode GET). Ich versuche, die Ergebnisseite in meinen start_requests (recherche.php) aufzurufen und alle get-Parameter festzulegen, die in der Adressleiste im Parameter formdata angezeigt werden. Ich habe auch die Cookies eingerichtet, die ich hatte, aber er hat auch nicht funktioniert.
Hier ist meine Spinne:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.http import FormRequest, Request
from robots_immo.items import AnnonceItem
class ElyseAvenueSpider(BaseSpider):
name = "elyse_avenue"
allowed_domains = ["http://www.elyseavenue.com/"]
def start_requests(self):
return [FormRequest(url="http://www.elyseavenue.com/recherche.php",
formdata={'recherche':'recherche',
'compteurLigne':'2',
'numLigneCourante':'0',
'inseeVille_0':'',
'num_rubrique':'',
'rechercheOK':'recherche',
'recherche_budget_max':'',
'recherche_budget_min':'',
'recherche_surface_max':'',
'recherche_surface_min':'',
'recherche_distance_km_0':'20',
'recherche_reference_bien':'',
'recherche_type_logement':'9',
'recherche_ville_0':''
},
cookies={'PHPSESSID':'4e1d729f68d3163bb110ad3e4cb8ffc3',
'__utma':'150766562.159027263.1340725224.1340725224.1340727680.2',
'__utmc':'150766562',
'__utmz':'150766562.1340725224.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb':'150766562.14.10.1340727680'
},
callback=self.parseAnnonces
)]
def parseAnnonces(self, response):
hxs = HtmlXPathSelector(response)
annonces = hxs.select('//div[@id="contenuCentre"]/div[@class="blocVignetteBien"]')
items = []
for annonce in annonces:
item = AnnonceItem()
item['nom'] = annonce.select('span[contains(@class,"nomBienImmo")]/a/text()').extract()
item['superficie'] = annonce.select('table//tr[2]/td[2]/span/text()').extract()
item['prix'] = annonce.select('span[@class="prixVignette"]/span[1]/text()').extract()
items.append(item)
return items
SPIDER = ElyseAvenueSpider()
Wenn ich die Spinne laufen lasse, gibt es kein Problem, aber die geladene Seite ist nicht die gute (es sagt "Bitte spezifizieren Sie Ihre Suche" und ich erhalte keine Ergebnisse ..)
2012-06-26 20:04:54+0200 [elyse_avenue] INFO: Spider opened
2012-06-26 20:04:54+0200 [elyse_avenue] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2012-06-26 20:04:54+0200 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2012-06-26 20:04:54+0200 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2012-06-26 20:04:54+0200 [elyse_avenue] DEBUG: Crawled (200) <POST http://www.elyseavenue.com/recherche.php> (referer: None)
2012-06-26 20:04:54+0200 [elyse_avenue] INFO: Closing spider (finished)
2012-06-26 20:04:54+0200 [elyse_avenue] INFO: Dumping spider stats:
{'downloader/request_bytes': 808,
'downloader/request_count': 1,
'downloader/request_method_count/POST': 1,
'downloader/response_bytes': 7590,
'downloader/response_count': 1,
'downloader/response_status_count/200': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2012, 6, 26, 18, 4, 54, 924624),
'scheduler/memory_enqueued': 1,
'start_time': datetime.datetime(2012, 6, 26, 18, 4, 54, 559230)}
2012-06-26 20:04:54+0200 [elyse_avenue] INFO: Spider closed (finished)
2012-06-26 20:04:54+0200 [scrapy] INFO: Dumping global stats:
{'memusage/max': 27410432, 'memusage/startup': 27410432}
Danke für Ihre Hilfe !