Subversion Repositories SmartDukaan

Rev

Rev 181 | Go to most recent revision | Details | 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
 
24
    def __init__(self):
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):
34
        listreq = []
35
        for url1 in self.start_urls:
36
            request = Request(url = str(url1), callback=self.parse,dont_filter=True,)
37
            request.headers.setdefault("Referer", "http://www.infibeam.com/Mobiles")
38
            listreq.append(request)
39
        return listreq
40
 
41
    def parse(self, response):
42
        vatplustax = 0
43
        hxs = HtmlXPathSelector(response)
44
        phone_info = hxs.select('//ul[@class="srch_result portrait"]/li')
45
        items = []
46
        msg(response.url)
47
        for i in phone_info:
48
            item = {}
49
            item['name'] = i.select('.//p/span[@class="title"]/text()')[0].extract()
50
            item['price'] = i.select('.//p/span[@class="price"]/text()')[0].extract()
51
            items.append(item)
52
 
53
        f = open('/home/gaurav/Desktop/infibeam_info.txt', 'a')
54
        da = DataHelper()
55
        for item in items:
56
            amnt = item['price'].replace(",","")
57
            amnt = amnt.replace("Rs.", "")
58
            amnt = amnt.strip()
59
 
60
            pr = int(amnt) + vatplustax
61
            da.add_infiphone(item['name'], amnt,pr)
62
            #print item['name']
63
            #print item['price']
64
            f.write(item['name'])
65
            f.write("\n")
66
            f.write(str(amnt))
67
            f.write("\n")
68
            f.write(str(pr))
69
            f.write("\n\n\n")
70
        f.close()            
71
SPIDER = infi_spider()