Rev 149 | Rev 228 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 13-May-2010@author: gaurav'''from scrapy.spider import BaseSpiderfrom scrapy.selector import HtmlXPathSelectorfrom scrapy.http import Requestfrom demo.items import DemoItemfrom scrapy.contrib.spidermiddleware import refererfrom scrapy.http.headers import Headersfrom scrapy.http.request.form import FormRequestfrom scrapy.log import msgfrom scrapy.http.response import Responsefrom datastore import DataAccessorfrom datastore.DataAccessor import DataHelperclass infi_spider(BaseSpider):def __init__(self):self.domain_name = "infibeam"ct = 15no = 1while(no<=ct):str1 = "http://www.infibeam.com/Mobiles/search?page="+str(no)self.start_urls.append(str1)no=no+1def start_requests(self):da = DataHelper()da.add_supplier(self.domain_name, "www.infibeam.com")listreq = []for url1 in self.start_urls:request = Request(url = str(url1), callback=self.parse,dont_filter=True,)request.headers.setdefault("Referer", "http://www.infibeam.com/Mobiles")listreq.append(request)return listreqdef parse(self, response):vatplustax = 0hxs = HtmlXPathSelector(response)phone_info = hxs.select('//ul[@class="srch_result portrait"]/li')items = []msg(response.url)for i in phone_info:item = {}item['name'] = i.select('.//p/span[@class="title"]/text()')[0].extract()item['price'] = i.select('.//p/span[@class="price"]/text()')[0].extract()items.append(item)f = open('/home/gaurav/Desktop/infibeam_info.txt', 'a')da = DataHelper()for item in items:amnt = item['price'].replace(",","")amnt = amnt.replace("Rs.", "")amnt = amnt.strip()pr = int(amnt) + vatplustaxda.add_infiphone(item['name'], amnt,pr)#print item['name']#print item['price']f.write(item['name'])f.write("\n")f.write(str(amnt))f.write("\n")f.write(str(pr))f.write("\n\n\n")f.close()SPIDER = infi_spider()