Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13828 kshitij.so 1
import pymongo
2
from dtr.utils.utils import to_java_date
3
from datetime import datetime
4
from operator import itemgetter
13833 kshitij.so 5
from dtr.utils import FlipkartScraper
13828 kshitij.so 6
 
7
con = None
8
now = datetime.now()
9
print to_java_date(now)
10
scraperFk = FlipkartScraper.FlipkartScraper()
11
 
12
def get_mongo_connection(host='localhost', port=27017):
13
    global con
14
    if con is None:
15
        print "Establishing connection %s host and port %d" %(host,port)
16
        try:
17
            con = pymongo.MongoClient(host, port)
18
        except Exception, e:
19
            print e
20
            return None
21
    return con
22
 
23
def scrapeFlipkart():
24
    flipkartBestSellers = list(get_mongo_connection().Catalog.MasterData.find({'rank':{'$gt':0},'source_id':2}))
25
    for data in flipkartBestSellers:
26
        inStock = 0
27
        print str(data['identifier'])
28
        if data['identifier'] is None or len(data['identifier'])==0:
29
            print "continue"
30
            continue
31
 
32
        url = "http://www.flipkart.com/ps/%s"%(data['identifier'])
33
        vendorsData = scraperFk.read(url)
34
        sortedVendorsData = []
35
        sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
36
        print "data",sortedVendorsData
37
        lowestSp, iterator = (0,)*2
38
        for vData in sortedVendorsData:
39
            if iterator == 0:
40
                lowestSp = vData['sellingPrice']
41
            break
42
        if lowestSp > 0:
43
            inStock = 1
44
        print lowestSp
45
        print inStock
46
        if lowestSp > 0:
47
            get_mongo_connection().Catalog.MasterData.update({'identifier':data['identifier']}, {'$set' : {'available_price':lowestSp,'updatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
48
        else:
49
            get_mongo_connection().Catalog.MasterData.update({'identifier':data['identifier']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
50
        print "+++++++++++++++++++++++++++"
51
 
52
 
53
 
54
 
55
def main():
56
    scrapeFlipkart()
57
 
58
if __name__=='__main__':
59
    main()