spider scraping library framework crawler python scrapy scraper craigslist

python - scraping - Scrapy Craigslist Scraper de Scrapy



scrapy scraping (1)

Estoy intentando raspar los anuncios de Craigslist usando Scrapy para extraer los artículos que están a la venta.

Puedo extraer la fecha, el título de la publicación y la URL de la publicación, pero tengo problemas para extraer el precio .

Por algún motivo, el código actual extrae todos los precios, pero cuando elimino el // antes de que el precio se amplíe, el campo de precios vuelve a estar vacío.

¿Alguien puede revisar el código a continuación y ayudarme?

from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector from craigslist_sample.items import CraigslistSampleItem class MySpider(BaseSpider): name = "craig" allowed_domains = ["craigslist.org"] start_urls = ["http://longisland.craigslist.org/search/sss?sort=date&query=raptor%20660&srchType=T"] def parse(self, response): hxs = HtmlXPathSelector(response) titles = hxs.select("//p") items = [] for titles in titles: item = CraigslistSampleItem() item[''date''] = titles.select(''span[@class="itemdate"]/text()'').extract() item ["title"] = titles.select("a/text()").extract() item ["link"] = titles.select("a/@href").extract() item [''price''] = titles.select(''//span[@class="itempp"]/text()'').extract() items.append(item) return items


itempp parece estar dentro de otro elemento, itempnr . Tal vez funcionaría si cambiaras //span[@class="itempp"]/text() para span[@class="itempnr"]/span[@class="itempp"]/text() .