Scrapy Python Craigslist Scraper

时间:2013-03-17 01:14:34

标签: python scrapy scraper craigslist

我正在尝试使用 Scrapy 来刮取Craigslist分类,以提取待售物品。

我能够提取日期,帖子标题和发布网址,但无法提取价格

由于某些原因,当前代码提取了所有的价格,但当我在价格跨度查找之前删除 // 时,价格字段将返回为空。< / p>

有人可以查看以下代码并帮助我吗?

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

1 个答案:

答案 0 :(得分:2)

itempp似乎位于另一个元素itempnr内。如果您要将//span[@class="itempp"]/text()更改为span[@class="itempnr"]/span[@class="itempp"]/text(),可能会有效。