faddai

Carmudi

Apr 27th, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.95 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from urlparse import urljoin
  3.  
  4. from scrapy.utils.response import get_base_url
  5. from scrapy.contrib.spiders import CrawlSpider, Rule
  6. from scrapy.contrib.linkextractors import LinkExtractor
  7.  
  8. from entertainment.items import CarmudiItem
  9.  
  10.  
  11. class CarmudiSpider(CrawlSpider):
  12.     name = "carmudi"
  13.     allowed_domains = ["carmudi.com.gh"]
  14.     start_urls = ['http://www.carmudi.com.gh/cars/?page=1', 'http://www.carmudi.com.gh/cars']
  15.  
  16.     rules = [
  17.         Rule(LinkExtractor(allow=["\?page=\d+"]),
  18.              callback="parse_item",
  19.              follow=True),
  20.     ]
  21.  
  22.     def parse_item(self, response):
  23.         catalog = response.xpath('//div[@class="catalog-item"]')
  24.         items = []
  25.         for index, catalog_item in enumerate(catalog):
  26.             item = CarmudiItem()
  27.             item['title'] = catalog_item.xpath('div/h5/a/text()').extract()
  28.             relative_url = catalog_item.xpath('div/h5/a/@href').extract()
  29.             item['description'] = catalog_item.xpath('div/div/p/text()').extract()
  30.             item['url'] = [urljoin(get_base_url(response), url) for url in relative_url]
  31.             _price = catalog_item.xpath('div[3]/div[2]/a/text()').extract()
  32.             price, currency = ''.join(_price).split(" ")
  33.             item['currency'] = currency
  34.             item['price'] = price
  35.             item['condition'] = catalog_item.xpath('div[2]/div[2]/ul/li[3]/text()').extract()
  36.             item['transmission'] = catalog_item.xpath('div[2]/div[2]/ul/li[2]/text()').extract()
  37.             item['gauge'] = catalog_item.xpath('div[2]/div[2]/ul/li[1]/text()').extract()
  38.             item['location'] = catalog_item.xpath('div[3]/div[3]/ul/li[2]/span/@title').extract()
  39.             item['fuel'] = catalog_item.xpath('div[2]/div[2]/ul/li[4]/text()').extract()
  40.             item['images'] = ''
  41.  
  42.             # yield item
  43.             items.append(item)
  44.         print "{} items processed".format(len(items))
  45.         return items
Advertisement
Add Comment
Please, Sign In to add comment