Subversion Repositories SmartDukaan

Rev

Rev 149 | Rev 228 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
149 ashish 1
'''
2
Created on 13-May-2010
3
 
4
@author: gaurav
5
'''
6
 
7
from scrapy.spider import BaseSpider
8
from scrapy.selector import HtmlXPathSelector
9
from scrapy.http import Request
10
 
11
from demo.items import DemoItem
12
from scrapy.contrib.spidermiddleware import referer
13
from scrapy.http.headers import Headers
14
from scrapy.http.request.form import FormRequest
15
from scrapy.log import msg
16
from scrapy.http.response import Response
17
 
18
from datastore import DataAccessor
19
from datastore.DataAccessor import DataHelper
20
 
21
 
22
class infi_spider(BaseSpider):
23
 
181 ashish 24
    def __init__(self): 
149 ashish 25
       self.domain_name = "infibeam"
26
       ct = 15
27
       no = 1
28
       while(no<=ct):
29
            str1 = "http://www.infibeam.com/Mobiles/search?page="+str(no)
30
            self.start_urls.append(str1)
31
            no=no+1
32
 
33
    def start_requests(self):
181 ashish 34
        da = DataHelper()
35
        da.add_supplier(self.domain_name, "www.infibeam.com")
149 ashish 36
        listreq = []
37
        for url1 in self.start_urls:
38
            request = Request(url = str(url1), callback=self.parse,dont_filter=True,)
39
            request.headers.setdefault("Referer", "http://www.infibeam.com/Mobiles")
40
            listreq.append(request)
41
        return listreq
42
 
43
    def parse(self, response):
44
        vatplustax = 0
45
        hxs = HtmlXPathSelector(response)
46
        phone_info = hxs.select('//ul[@class="srch_result portrait"]/li')
47
        items = []
48
        msg(response.url)
49
        for i in phone_info:
50
            item = {}
51
            item['name'] = i.select('.//p/span[@class="title"]/text()')[0].extract()
52
            item['price'] = i.select('.//p/span[@class="price"]/text()')[0].extract()
53
            items.append(item)
54
 
55
        f = open('/home/gaurav/Desktop/infibeam_info.txt', 'a')
56
        da = DataHelper()
57
        for item in items:
58
            amnt = item['price'].replace(",","")
59
            amnt = amnt.replace("Rs.", "")
60
            amnt = amnt.strip()
61
 
62
            pr = int(amnt) + vatplustax
63
            da.add_infiphone(item['name'], amnt,pr)
64
            #print item['name']
65
            #print item['price']
66
            f.write(item['name'])
67
            f.write("\n")
68
            f.write(str(amnt))
69
            f.write("\n")
70
            f.write(str(pr))
71
            f.write("\n\n\n")
72
        f.close()            
73
SPIDER = infi_spider()