2013-03-17 4 views
4

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

Я могу извлечь дату, после названия, и пост 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 
+0

Привет, я создаю похожий скрипт, и я вижу, что люди используют craigslist_sample.items, но я не уверен, как получить этот пакет? – keithp

ответ

2

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

+1

Это сработало. Спасибо!!!!!! –

+0

Он все еще ничего не дает? –

+0

В нижней части страницы ничего не давали на близлежащие результаты. –

Смежные вопросы