Scrapy Python Craigslist Скребок

Я пытаюсь очистить объявления Craigslist с помощью Scrapy, чтобы извлечь товары, которые выставлены на продажу.

Я могу извлечь дату, заголовок сообщения и URL-адрес сообщения, но не могу получить цену.

По какой-то причине текущий код извлекает все цены, но когда я удаляю // перед поиском диапазона цен, поле цены возвращается как пустое.

Может ли кто-нибудь просмотреть приведенный ниже код и помочь мне?

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

person Joe Barreca    schedule 17.03.2013    source источник
comment
Привет, я создаю аналогичный сценарий и вижу, что люди используют craigslist_sample.items, но я не знаю, как получить этот пакет?   -  person keithp    schedule 22.12.2014


Ответы (1)


itempp находится внутри другого элемента, itempnr. Возможно, это сработает, если вы измените //span[@class="itempp"]/text() на span[@class="itempnr"]/span[@class="itempp"]/text().

person Eric Pauley    schedule 17.03.2013
comment
Он по-прежнему ничего не дает? - person Eric Pauley; 17.03.2013
comment
Это ничего не давало только по ближайшим результатам в нижней половине страницы. - person Joe Barreca; 17.03.2013
comment
По какой-то причине в моем поле даты есть кавычки, которые немного сбрасывают мой CSV-файл ... какие-либо мысли о том, как я могу извлечь только то, что находится в кавычках? - person Joe Barreca; 17.03.2013
comment
Я бы переключил ' и ", поэтому строки python окружены ", а строки scrapy окружены '. - person Eric Pauley; 17.03.2013
comment
Я даже не заметил, что это изменилось ... спасибо, что указали на это ... К сожалению, это не устранило проблему ... Похоже, Craigslist просто форматирует даты таким образом. Вот как он в настоящее время извлекает {'date': [u '\ n \ t \ t \ t \ t 8 марта \ n \ t', u '\ n \ t \ t \ t'], 'link': [ u 'longisland.craigslist.org/mcy/3666669932.html'], 'price': [u '$ 3000'], 'title': [u'YAMAHA RAPTOR 660-2002 ... ТРОЙНОЙ ЧЕРНЫЙ ... Вкусно МОДИФИЦИРОВАНО ... БЫСТРО !!! ']} - person Joe Barreca; 17.03.2013