| Line 3... |
Line 3... |
| 3 |
import pymongo
|
3 |
import pymongo
|
| 4 |
from dtr.utils.utils import to_java_date
|
4 |
from dtr.utils.utils import to_java_date
|
| 5 |
from datetime import datetime, timedelta
|
5 |
from datetime import datetime, timedelta
|
| 6 |
from operator import itemgetter
|
6 |
from operator import itemgetter
|
| 7 |
from dtr.utils.AmazonPriceOnlyScraper import AmazonScraper
|
7 |
from dtr.utils.AmazonPriceOnlyScraper import AmazonScraper
|
| 8 |
from dtr.utils import FlipkartScraper
|
8 |
from dtr.utils import FlipkartScraper,NewFlipkartScraper
|
| 9 |
|
9 |
|
| 10 |
con = None
|
10 |
con = None
|
| 11 |
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3}
|
11 |
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3}
|
| 12 |
scraperFk = FlipkartScraper.FlipkartScraper()
|
12 |
scraperFk = FlipkartScraper.FlipkartScraper()
|
| 13 |
scraperAmazon = AmazonScraper()
|
13 |
scraperAmazon = AmazonScraper()
|
| - |
|
14 |
scraperProductPage = NewFlipkartScraper.FlipkartProductPageScraper()
|
| 14 |
|
15 |
|
| 15 |
headers = {
|
16 |
headers = {
|
| 16 |
'User-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
|
17 |
'User-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
|
| 17 |
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
18 |
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
| 18 |
'Accept-Language' : 'en-US,en;q=0.8',
|
19 |
'Accept-Language' : 'en-US,en;q=0.8',
|
| Line 129... |
Line 130... |
| 129 |
print "sku id is already updated",data['_id']
|
130 |
print "sku id is already updated",data['_id']
|
| 130 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
131 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 131 |
except:
|
132 |
except:
|
| 132 |
pass
|
133 |
pass
|
| 133 |
|
134 |
|
| 134 |
|
- |
|
| 135 |
url = "http://www.flipkart.com/ps/%s"%(data['identifier'])
|
- |
|
| 136 |
vendorsData = scraperFk.read(url)
|
- |
|
| 137 |
sortedVendorsData = []
|
- |
|
| 138 |
sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
|
- |
|
| 139 |
print "data",sortedVendorsData
|
- |
|
| 140 |
lowestSp = 0
|
135 |
lowestSp = 0
|
| 141 |
inStock = 0
|
136 |
inStock = 0
|
| - |
|
137 |
try:
|
| - |
|
138 |
if data['marketPlaceUrl']!="" or data['marketPlaceUrl'] !="http://www.flipkart.com/ps/%s"%(data['identifier']):
|
| - |
|
139 |
result = scraperProductPage.read(data['marketPlaceUrl'])
|
| - |
|
140 |
if result.get('lowestPrice')!=0:
|
| - |
|
141 |
lowestSp = result.get('lowestPrice')
|
| - |
|
142 |
inStock = result.get('inStock')
|
| - |
|
143 |
except:
|
| - |
|
144 |
print "Unable to scrape product page ",data['identifier']
|
| - |
|
145 |
if lowestSp ==0:
|
| - |
|
146 |
url = "http://www.flipkart.com/ps/%s"%(data['identifier'])
|
| - |
|
147 |
vendorsData = scraperFk.read(url)
|
| - |
|
148 |
sortedVendorsData = []
|
| - |
|
149 |
sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
|
| - |
|
150 |
print "data",sortedVendorsData
|
| 142 |
for vData in sortedVendorsData:
|
151 |
for vData in sortedVendorsData:
|
| 143 |
lowestSp = vData['sellingPrice']
|
152 |
lowestSp = vData['sellingPrice']
|
| 144 |
break
|
153 |
break
|
| 145 |
if lowestSp > 0:
|
154 |
if lowestSp > 0:
|
| 146 |
inStock = 1
|
155 |
inStock = 1
|
| 147 |
print lowestSp
|
156 |
print lowestSp
|
| 148 |
print inStock
|
157 |
print inStock
|
| 149 |
if lowestSp > 0:
|
158 |
if lowestSp > 0:
|
| 150 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
|
159 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
|
| 151 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp , 'in_stock':inStock}}, multi=True)
|
160 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp , 'in_stock':inStock}}, multi=True)
|