| Line 685... |
Line 685... |
| 685 |
itemInfo.append(flipkartItemInfo)
|
685 |
itemInfo.append(flipkartItemInfo)
|
| 686 |
session.close()
|
686 |
session.close()
|
| 687 |
return itemInfo
|
687 |
return itemInfo
|
| 688 |
|
688 |
|
| 689 |
def fetchDetails(flipkartSerialNumber):
|
689 |
def fetchDetails(flipkartSerialNumber):
|
| 690 |
print "Inside fetch details"
|
- |
|
| 691 |
url = "http://www.flipkart.com/ps/%s"%(flipkartSerialNumber)
|
- |
|
| 692 |
#url = "http://www.flipkart.com/ps/MOBDTXVZXVY3GFG8"
|
- |
|
| 693 |
#scraper.read(url)
|
- |
|
| 694 |
# scraper = FlipkartScraper.FlipkartScraper()
|
- |
|
| 695 |
# vendorsData = scraper.read(url)
|
- |
|
| 696 |
request = urllib2.Request(url)
|
- |
|
| 697 |
request.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1')
|
- |
|
| 698 |
opener = urllib2.build_opener()
|
- |
|
| 699 |
response_data = ""
|
- |
|
| 700 |
try:
|
- |
|
| 701 |
response_data = opener.open(request).read()
|
- |
|
| 702 |
print datetime.now()
|
- |
|
| 703 |
print "Fetched response from flipkart for %s" %(url)
|
- |
|
| 704 |
|
- |
|
| 705 |
except urllib2.HTTPError as e:
|
- |
|
| 706 |
print 'ERROR: ', e
|
- |
|
| 707 |
print 'Retrying'
|
- |
|
| 708 |
|
- |
|
| 709 |
response_data=response_data
|
- |
|
| 710 |
page=response_data.decode("utf-8")
|
- |
|
| 711 |
print datetime.now()
|
- |
|
| 712 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
- |
|
| 713 |
page = None
|
- |
|
| 714 |
response_data = None
|
- |
|
| 715 |
print datetime.now()
|
- |
|
| 716 |
print "Soup created from flipkart data for %s" %(url)
|
- |
|
| 717 |
info = []
|
- |
|
| 718 |
oddSeller = soup.findAll("div" , {"class" : "line seller-item odd "})
|
- |
|
| 719 |
for data in oddSeller:
|
- |
|
| 720 |
temp={}
|
- |
|
| 721 |
try:
|
- |
|
| 722 |
businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
|
- |
|
| 723 |
shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace(' ','-')
|
- |
|
| 724 |
temp['shippingTime']=shippingTime
|
- |
|
| 725 |
except:
|
- |
|
| 726 |
pass
|
- |
|
| 727 |
price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.').strip()
|
- |
|
| 728 |
temp['sellingPrice']=float(price)
|
- |
|
| 729 |
for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
|
- |
|
| 730 |
sellerName = sellerInfo.find('a').string
|
- |
|
| 731 |
temp['sellerName'] = sellerName
|
- |
|
| 732 |
for metrics in data.find("div",{"class":"fk-text-right"}):
|
- |
|
| 733 |
try:
|
- |
|
| 734 |
metric = metrics.findAll('input', {'type': 'submit'})
|
- |
|
| 735 |
except AttributeError:
|
- |
|
| 736 |
continue
|
- |
|
| 737 |
try:
|
- |
|
| 738 |
inputTags = metric[0]['data-lst-buytrend']
|
- |
|
| 739 |
except TypeError:
|
- |
|
| 740 |
continue
|
- |
|
| 741 |
dataMetrics = metric[0]['data-listing-metrics']
|
- |
|
| 742 |
try:
|
- |
|
| 743 |
buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
|
- |
|
| 744 |
except ValueError:
|
- |
|
| 745 |
buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
|
- |
|
| 746 |
temp['buyTrend']=buyTrend
|
- |
|
| 747 |
dataMetric = dataMetrics.split(';')
|
- |
|
| 748 |
sellerCode = dataMetric[0]
|
- |
|
| 749 |
temp['sellerCode']=sellerCode
|
- |
|
| 750 |
temp['sellingPriceMetric'] = float(dataMetric[1])
|
- |
|
| 751 |
if not temp.has_key('shippingTime'):
|
- |
|
| 752 |
print "Populating shipping time from metrics"
|
- |
|
| 753 |
temp['shippingTime'] = dataMetric[3]
|
- |
|
| 754 |
temp['sellerScore'] = int(dataMetric[4])
|
- |
|
| 755 |
info.append(temp)
|
- |
|
| 756 |
evenSeller = soup.findAll("div" , {"class" : "line seller-item even "})
|
- |
|
| 757 |
for data in evenSeller:
|
- |
|
| 758 |
temp={}
|
- |
|
| 759 |
price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.')
|
- |
|
| 760 |
try:
|
- |
|
| 761 |
businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
|
- |
|
| 762 |
shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace(' ','-')
|
- |
|
| 763 |
temp['shippingTime']=shippingTime
|
- |
|
| 764 |
except:
|
- |
|
| 765 |
pass
|
- |
|
| 766 |
temp['sellingPrice']=float(price)
|
- |
|
| 767 |
for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
|
- |
|
| 768 |
sellerName = sellerInfo.find('a').string
|
- |
|
| 769 |
temp['sellerName'] = sellerName
|
- |
|
| 770 |
for metrics in data.find("div",{"class":"fk-text-right"}):
|
- |
|
| 771 |
try:
|
- |
|
| 772 |
metric = metrics.findAll('input', {'type': 'submit'})
|
- |
|
| 773 |
except AttributeError:
|
- |
|
| 774 |
continue
|
- |
|
| 775 |
try:
|
- |
|
| 776 |
inputTags = metric[0]['data-lst-buytrend']
|
- |
|
| 777 |
except TypeError:
|
- |
|
| 778 |
continue
|
- |
|
| 779 |
dataMetrics = metric[0]['data-listing-metrics']
|
- |
|
| 780 |
try:
|
- |
|
| 781 |
buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
|
- |
|
| 782 |
except ValueError:
|
- |
|
| 783 |
buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
|
- |
|
| 784 |
temp['buyTrend']=buyTrend
|
- |
|
| 785 |
dataMetric = dataMetrics.split(';')
|
- |
|
| 786 |
temp['sellerCode'] = dataMetric[0]
|
- |
|
| 787 |
temp['sellingPriceMetric'] = float(dataMetric[1])
|
- |
|
| 788 |
if not temp.has_key('shippingTime'):
|
- |
|
| 789 |
print "Populating shipping time from metrics"
|
- |
|
| 790 |
temp['shippingTime'] = dataMetric[3]
|
- |
|
| 791 |
temp['sellerScore'] = int(dataMetric[4])
|
- |
|
| 792 |
info.append(temp)
|
- |
|
| 793 |
vendorsData = info
|
- |
|
| 794 |
info = []
|
- |
|
| 795 |
print "Returning Json response from flipkart for %s" %(url)
|
- |
|
| 796 |
fin = datetime.now()
|
- |
|
| 797 |
print "Finish with data for serial Number %s %s" %(flipkartSerialNumber,str(fin))
|
- |
|
| 798 |
sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
|
- |
|
| 799 |
vendorsData[:]=[]
|
- |
|
| 800 |
rank ,ourSp, iterator, secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, shippingTimeLowerLimitLowestSeller,shippingTimeUpperLimitLowestSeller, \
|
- |
|
| 801 |
shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller, shippingTimeLowerLimitOur, shippingTimeUpperLimitOur, shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller, totalAvailableSeller= (0,)*19
|
- |
|
| 802 |
lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
|
- |
|
| 803 |
ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode = ('',)*11
|
- |
|
| 804 |
for data in sortedVendorsData:
|
- |
|
| 805 |
if iterator == 0:
|
- |
|
| 806 |
lowestSellerName = data['sellerName']
|
- |
|
| 807 |
lowestSellerScore = data['sellerScore']
|
- |
|
| 808 |
lowestSellerCode = data['sellerCode']
|
- |
|
| 809 |
lowestSellerSp = data['sellingPrice']
|
- |
|
| 810 |
lowestSellerBuyTrend = data['buyTrend']
|
- |
|
| 811 |
try:
|
- |
|
| 812 |
shippingTimeLowerLimitLowestSeller, shippingTimeUpperLimitLowestSeller = data['shippingTime'].split('-')
|
- |
|
| 813 |
except ValueError:
|
- |
|
| 814 |
shippingTimeLowerLimitLowestSeller = int(data['shippingTime'])
|
- |
|
| 815 |
|
- |
|
| 816 |
if iterator ==1:
|
- |
|
| 817 |
secondLowestSellerName = data['sellerName']
|
- |
|
| 818 |
secondLowestSellerScore = data['sellerScore']
|
- |
|
| 819 |
secondLowestSellerCode = data['sellerCode']
|
- |
|
| 820 |
secondLowestSellerSp = data['sellingPrice']
|
- |
|
| 821 |
secondLowestSellerBuyTrend = data['buyTrend']
|
- |
|
| 822 |
try:
|
- |
|
| 823 |
shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller = data['shippingTime'].split('-')
|
- |
|
| 824 |
except ValueError:
|
- |
|
| 825 |
shippingTimeLowerLimitSecondLowestSeller = int(data['shippingTime'])
|
- |
|
| 826 |
|
- |
|
| 827 |
if data['sellerName'] == 'Saholic':
|
- |
|
| 828 |
ourScore = data['sellerScore']
|
- |
|
| 829 |
ourCode = data['sellerCode']
|
- |
|
| 830 |
ourSp = data['sellingPrice']
|
- |
|
| 831 |
ourBuyTrend = data['buyTrend']
|
- |
|
| 832 |
try:
|
- |
|
| 833 |
shippingTimeLowerLimitOur, shippingTimeUpperLimitOur = data['shippingTime'].split('-')
|
- |
|
| 834 |
except ValueError:
|
- |
|
| 835 |
shippingTimeLowerLimitOur = int(data['shippingTime'])
|
- |
|
| 836 |
rank = iterator + 1
|
- |
|
| 837 |
|
- |
|
| 838 |
if data['buyTrend'] in ('PrefCheap','PrefNCheap',''):
|
- |
|
| 839 |
prefSellerName = data['sellerName']
|
- |
|
| 840 |
prefSellerScore = data['sellerScore']
|
- |
|
| 841 |
prefSellerCode = data['sellerCode']
|
- |
|
| 842 |
prefSellerSp = data['sellingPrice']
|
- |
|
| 843 |
prefSellerBuyTrend = data['buyTrend']
|
- |
|
| 844 |
try:
|
- |
|
| 845 |
shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller = data['shippingTime'].split('-')
|
- |
|
| 846 |
except ValueError:
|
- |
|
| 847 |
shippingTimeLowerLimitPrefSeller = int(data['shippingTime'])
|
- |
|
| 848 |
|
- |
|
| 849 |
iterator+=1
|
- |
|
| 850 |
|
- |
|
| 851 |
flipkartDetails = __FlipkartDetails(rank ,ourSp , secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, int(shippingTimeLowerLimitLowestSeller),int(shippingTimeUpperLimitLowestSeller), \
|
- |
|
| 852 |
int(shippingTimeLowerLimitPrefSeller), int(shippingTimeUpperLimitPrefSeller), int(shippingTimeLowerLimitOur), int(shippingTimeUpperLimitOur), int(shippingTimeLowerLimitSecondLowestSeller), int(shippingTimeUpperLimitSecondLowestSeller), len(sortedVendorsData), lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
|
690 |
pass
|
| 853 |
ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode)
|
- |
|
| 854 |
|
- |
|
| 855 |
if flipkartDetails.ourBuyTrend == 'PrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.secondLowestSellerSp:
|
- |
|
| 856 |
print "Under PrefCheap category.Switching data for ",flipkartSerialNumber
|
- |
|
| 857 |
flipkartDetails.lowestSellerSp, flipkartDetails.secondLowestSellerSp = flipkartDetails.secondLowestSellerSp,flipkartDetails.lowestSellerSp
|
- |
|
| 858 |
flipkartDetails.lowestSellerScore, flipkartDetails.secondLowestSellerScore = flipkartDetails.secondLowestSellerScore,flipkartDetails.lowestSellerScore
|
- |
|
| 859 |
flipkartDetails.shippingTimeLowerLimitLowestSeller, flipkartDetails.shippingTimeLowerLimitSecondLowestSeller = flipkartDetails.shippingTimeLowerLimitSecondLowestSeller,flipkartDetails.shippingTimeLowerLimitLowestSeller
|
- |
|
| 860 |
flipkartDetails.shippingTimeUpperLimitLowestSeller, flipkartDetails.shippingTimeUpperLimitSecondLowestSeller = flipkartDetails.shippingTimeUpperLimitSecondLowestSeller,flipkartDetails.shippingTimeUpperLimitLowestSeller
|
- |
|
| 861 |
flipkartDetails.lowestSellerName, flipkartDetails.secondLowestSellerName = flipkartDetails.secondLowestSellerName,flipkartDetails.lowestSellerName
|
- |
|
| 862 |
flipkartDetails.lowestSellerCode, flipkartDetails.secondLowestSellerCode = flipkartDetails.secondLowestSellerCode,flipkartDetails.lowestSellerCode
|
- |
|
| 863 |
flipkartDetails.lowestSellerBuyTrend, flipkartDetails.secondLowestSellerBuyTrend = flipkartDetails.secondLowestSellerBuyTrend,flipkartDetails.lowestSellerBuyTrend
|
- |
|
| 864 |
flipkartDetails.rank=1
|
- |
|
| 865 |
|
- |
|
| 866 |
if flipkartDetails.ourBuyTrend == 'NPrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.lowestSellerSp:
|
- |
|
| 867 |
print "Under NPrefCheap category.Switching data for ",flipkartSerialNumber
|
- |
|
| 868 |
flipkartDetails.lowestSellerSp = flipkartDetails.ourSp
|
- |
|
| 869 |
flipkartDetails.lowestSellerScore = flipkartDetails.ourScore
|
- |
|
| 870 |
flipkartDetails.shippingTimeLowerLimitLowestSeller = flipkartDetails.shippingTimeLowerLimitOur
|
- |
|
| 871 |
flipkartDetails.shippingTimeUpperLimitLowestSeller = flipkartDetails.shippingTimeUpperLimitOur
|
- |
|
| 872 |
flipkartDetails.lowestSellerName = 'Saholic'
|
- |
|
| 873 |
flipkartDetails.lowestSellerCode = flipkartDetails.ourCode
|
- |
|
| 874 |
flipkartDetails.lowestSellerBuyTrend = flipkartDetails.ourBuyTrend
|
- |
|
| 875 |
|
- |
|
| 876 |
return flipkartDetails
|
- |
|
| 877 |
|
691 |
|
| 878 |
def calculateAverageSale(oosStatus):
|
692 |
def calculateAverageSale(oosStatus):
|
| 879 |
count,sale = 0,0
|
693 |
count,sale = 0,0
|
| 880 |
for obj in oosStatus:
|
694 |
for obj in oosStatus:
|
| 881 |
if not obj.is_oos:
|
695 |
if not obj.is_oos:
|
| Line 2206... |
Line 2020... |
| 2206 |
|
2020 |
|
| 2207 |
def populateScrapingResults(val):
|
2021 |
def populateScrapingResults(val):
|
| 2208 |
try:
|
2022 |
try:
|
| 2209 |
now = datetime.now()
|
2023 |
now = datetime.now()
|
| 2210 |
print "Fetching data for serial Number %s %s" %(val.fkSerialNumber,str(now))
|
2024 |
print "Fetching data for serial Number %s %s" %(val.fkSerialNumber,str(now))
|
| - |
|
2025 |
print "Inside fetch details"
|
| - |
|
2026 |
flipkartSerialNumber = val.fkSerialNumber
|
| - |
|
2027 |
url = "http://www.flipkart.com/ps/%s"%(flipkartSerialNumber)
|
| - |
|
2028 |
#url = "http://www.flipkart.com/ps/MOBDTXVZXVY3GFG8"
|
| - |
|
2029 |
#scraper.read(url)
|
| - |
|
2030 |
# scraper = FlipkartScraper.FlipkartScraper()
|
| - |
|
2031 |
# vendorsData = scraper.read(url)
|
| - |
|
2032 |
request = urllib2.Request(url)
|
| - |
|
2033 |
request.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1')
|
| - |
|
2034 |
opener = urllib2.build_opener()
|
| - |
|
2035 |
response_data = ""
|
| - |
|
2036 |
try:
|
| - |
|
2037 |
response_data = opener.open(request).read()
|
| - |
|
2038 |
print datetime.now()
|
| - |
|
2039 |
print "Fetched response from flipkart for %s" %(url)
|
| - |
|
2040 |
|
| - |
|
2041 |
except urllib2.HTTPError as e:
|
| - |
|
2042 |
print 'ERROR: ', e
|
| - |
|
2043 |
print 'Retrying'
|
| - |
|
2044 |
|
| - |
|
2045 |
response_data=response_data
|
| - |
|
2046 |
page=response_data.decode("utf-8")
|
| - |
|
2047 |
print datetime.now()
|
| - |
|
2048 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
| - |
|
2049 |
page = None
|
| - |
|
2050 |
response_data = None
|
| - |
|
2051 |
print datetime.now()
|
| - |
|
2052 |
print "Soup created from flipkart data for %s" %(url)
|
| - |
|
2053 |
info = []
|
| - |
|
2054 |
oddSeller = soup.findAll("div" , {"class" : "line seller-item odd "})
|
| - |
|
2055 |
for data in oddSeller:
|
| - |
|
2056 |
temp={}
|
| - |
|
2057 |
try:
|
| - |
|
2058 |
businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
|
| - |
|
2059 |
shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace(' ','-')
|
| - |
|
2060 |
temp['shippingTime']=shippingTime
|
| - |
|
2061 |
except:
|
| - |
|
2062 |
pass
|
| - |
|
2063 |
price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.').strip()
|
| - |
|
2064 |
temp['sellingPrice']=float(price)
|
| - |
|
2065 |
for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
|
| - |
|
2066 |
sellerName = sellerInfo.find('a').string
|
| - |
|
2067 |
temp['sellerName'] = sellerName
|
| - |
|
2068 |
for metrics in data.find("div",{"class":"fk-text-right"}):
|
| - |
|
2069 |
try:
|
| - |
|
2070 |
metric = metrics.findAll('input', {'type': 'submit'})
|
| - |
|
2071 |
except AttributeError:
|
| - |
|
2072 |
continue
|
| - |
|
2073 |
try:
|
| - |
|
2074 |
inputTags = metric[0]['data-lst-buytrend']
|
| - |
|
2075 |
except TypeError:
|
| - |
|
2076 |
continue
|
| - |
|
2077 |
dataMetrics = metric[0]['data-listing-metrics']
|
| - |
|
2078 |
try:
|
| - |
|
2079 |
buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
|
| - |
|
2080 |
except ValueError:
|
| - |
|
2081 |
buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
|
| - |
|
2082 |
temp['buyTrend']=buyTrend
|
| - |
|
2083 |
dataMetric = dataMetrics.split(';')
|
| - |
|
2084 |
sellerCode = dataMetric[0]
|
| - |
|
2085 |
temp['sellerCode']=sellerCode
|
| - |
|
2086 |
temp['sellingPriceMetric'] = float(dataMetric[1])
|
| - |
|
2087 |
if not temp.has_key('shippingTime'):
|
| - |
|
2088 |
print "Populating shipping time from metrics"
|
| - |
|
2089 |
temp['shippingTime'] = dataMetric[3]
|
| - |
|
2090 |
temp['sellerScore'] = int(dataMetric[4])
|
| - |
|
2091 |
info.append(temp)
|
| - |
|
2092 |
evenSeller = soup.findAll("div" , {"class" : "line seller-item even "})
|
| - |
|
2093 |
for data in evenSeller:
|
| - |
|
2094 |
temp={}
|
| - |
|
2095 |
price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.')
|
| - |
|
2096 |
try:
|
| - |
|
2097 |
businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
|
| - |
|
2098 |
shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace(' ','-')
|
| - |
|
2099 |
temp['shippingTime']=shippingTime
|
| - |
|
2100 |
except:
|
| - |
|
2101 |
pass
|
| - |
|
2102 |
temp['sellingPrice']=float(price)
|
| - |
|
2103 |
for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
|
| - |
|
2104 |
sellerName = sellerInfo.find('a').string
|
| - |
|
2105 |
temp['sellerName'] = sellerName
|
| - |
|
2106 |
for metrics in data.find("div",{"class":"fk-text-right"}):
|
| - |
|
2107 |
try:
|
| - |
|
2108 |
metric = metrics.findAll('input', {'type': 'submit'})
|
| - |
|
2109 |
except AttributeError:
|
| - |
|
2110 |
continue
|
| - |
|
2111 |
try:
|
| - |
|
2112 |
inputTags = metric[0]['data-lst-buytrend']
|
| - |
|
2113 |
except TypeError:
|
| - |
|
2114 |
continue
|
| - |
|
2115 |
dataMetrics = metric[0]['data-listing-metrics']
|
| - |
|
2116 |
try:
|
| - |
|
2117 |
buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
|
| - |
|
2118 |
except ValueError:
|
| - |
|
2119 |
buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
|
| - |
|
2120 |
temp['buyTrend']=buyTrend
|
| - |
|
2121 |
dataMetric = dataMetrics.split(';')
|
| - |
|
2122 |
temp['sellerCode'] = dataMetric[0]
|
| - |
|
2123 |
temp['sellingPriceMetric'] = float(dataMetric[1])
|
| - |
|
2124 |
if not temp.has_key('shippingTime'):
|
| - |
|
2125 |
print "Populating shipping time from metrics"
|
| - |
|
2126 |
temp['shippingTime'] = dataMetric[3]
|
| - |
|
2127 |
temp['sellerScore'] = int(dataMetric[4])
|
| - |
|
2128 |
info.append(temp)
|
| - |
|
2129 |
vendorsData = info
|
| - |
|
2130 |
info = []
|
| - |
|
2131 |
print "Returning Json response from flipkart for %s" %(url)
|
| - |
|
2132 |
fin = datetime.now()
|
| - |
|
2133 |
print "Finish with data for serial Number %s %s" %(flipkartSerialNumber,str(fin))
|
| - |
|
2134 |
sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
|
| - |
|
2135 |
vendorsData[:]=[]
|
| - |
|
2136 |
rank ,ourSp, iterator, secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, shippingTimeLowerLimitLowestSeller,shippingTimeUpperLimitLowestSeller, \
|
| - |
|
2137 |
shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller, shippingTimeLowerLimitOur, shippingTimeUpperLimitOur, shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller, totalAvailableSeller= (0,)*19
|
| - |
|
2138 |
lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
|
| - |
|
2139 |
ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode = ('',)*11
|
| - |
|
2140 |
for data in sortedVendorsData:
|
| - |
|
2141 |
if iterator == 0:
|
| - |
|
2142 |
lowestSellerName = data['sellerName']
|
| - |
|
2143 |
lowestSellerScore = data['sellerScore']
|
| - |
|
2144 |
lowestSellerCode = data['sellerCode']
|
| - |
|
2145 |
lowestSellerSp = data['sellingPrice']
|
| - |
|
2146 |
lowestSellerBuyTrend = data['buyTrend']
|
| - |
|
2147 |
try:
|
| - |
|
2148 |
shippingTimeLowerLimitLowestSeller, shippingTimeUpperLimitLowestSeller = data['shippingTime'].split('-')
|
| - |
|
2149 |
except ValueError:
|
| - |
|
2150 |
shippingTimeLowerLimitLowestSeller = int(data['shippingTime'])
|
| - |
|
2151 |
|
| - |
|
2152 |
if iterator ==1:
|
| - |
|
2153 |
secondLowestSellerName = data['sellerName']
|
| - |
|
2154 |
secondLowestSellerScore = data['sellerScore']
|
| - |
|
2155 |
secondLowestSellerCode = data['sellerCode']
|
| - |
|
2156 |
secondLowestSellerSp = data['sellingPrice']
|
| - |
|
2157 |
secondLowestSellerBuyTrend = data['buyTrend']
|
| - |
|
2158 |
try:
|
| - |
|
2159 |
shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller = data['shippingTime'].split('-')
|
| - |
|
2160 |
except ValueError:
|
| - |
|
2161 |
shippingTimeLowerLimitSecondLowestSeller = int(data['shippingTime'])
|
| - |
|
2162 |
|
| - |
|
2163 |
if data['sellerName'] == 'Saholic':
|
| - |
|
2164 |
ourScore = data['sellerScore']
|
| - |
|
2165 |
ourCode = data['sellerCode']
|
| - |
|
2166 |
ourSp = data['sellingPrice']
|
| - |
|
2167 |
ourBuyTrend = data['buyTrend']
|
| - |
|
2168 |
try:
|
| - |
|
2169 |
shippingTimeLowerLimitOur, shippingTimeUpperLimitOur = data['shippingTime'].split('-')
|
| - |
|
2170 |
except ValueError:
|
| - |
|
2171 |
shippingTimeLowerLimitOur = int(data['shippingTime'])
|
| - |
|
2172 |
rank = iterator + 1
|
| - |
|
2173 |
|
| - |
|
2174 |
if data['buyTrend'] in ('PrefCheap','PrefNCheap',''):
|
| - |
|
2175 |
prefSellerName = data['sellerName']
|
| - |
|
2176 |
prefSellerScore = data['sellerScore']
|
| - |
|
2177 |
prefSellerCode = data['sellerCode']
|
| - |
|
2178 |
prefSellerSp = data['sellingPrice']
|
| - |
|
2179 |
prefSellerBuyTrend = data['buyTrend']
|
| - |
|
2180 |
try:
|
| - |
|
2181 |
shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller = data['shippingTime'].split('-')
|
| - |
|
2182 |
except ValueError:
|
| - |
|
2183 |
shippingTimeLowerLimitPrefSeller = int(data['shippingTime'])
|
| - |
|
2184 |
|
| - |
|
2185 |
iterator+=1
|
| - |
|
2186 |
|
| - |
|
2187 |
flipkartDetails = __FlipkartDetails(rank ,ourSp , secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, int(shippingTimeLowerLimitLowestSeller),int(shippingTimeUpperLimitLowestSeller), \
|
| 2211 |
flipkartDetails = fetchDetails(val.fkSerialNumber)
|
2188 |
int(shippingTimeLowerLimitPrefSeller), int(shippingTimeUpperLimitPrefSeller), int(shippingTimeLowerLimitOur), int(shippingTimeUpperLimitOur), int(shippingTimeLowerLimitSecondLowestSeller), int(shippingTimeUpperLimitSecondLowestSeller), len(sortedVendorsData), lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
|
| - |
|
2189 |
ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode)
|
| - |
|
2190 |
|
| - |
|
2191 |
if flipkartDetails.ourBuyTrend == 'PrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.secondLowestSellerSp:
|
| - |
|
2192 |
print "Under PrefCheap category.Switching data for ",flipkartSerialNumber
|
| - |
|
2193 |
flipkartDetails.lowestSellerSp, flipkartDetails.secondLowestSellerSp = flipkartDetails.secondLowestSellerSp,flipkartDetails.lowestSellerSp
|
| - |
|
2194 |
flipkartDetails.lowestSellerScore, flipkartDetails.secondLowestSellerScore = flipkartDetails.secondLowestSellerScore,flipkartDetails.lowestSellerScore
|
| - |
|
2195 |
flipkartDetails.shippingTimeLowerLimitLowestSeller, flipkartDetails.shippingTimeLowerLimitSecondLowestSeller = flipkartDetails.shippingTimeLowerLimitSecondLowestSeller,flipkartDetails.shippingTimeLowerLimitLowestSeller
|
| - |
|
2196 |
flipkartDetails.shippingTimeUpperLimitLowestSeller, flipkartDetails.shippingTimeUpperLimitSecondLowestSeller = flipkartDetails.shippingTimeUpperLimitSecondLowestSeller,flipkartDetails.shippingTimeUpperLimitLowestSeller
|
| - |
|
2197 |
flipkartDetails.lowestSellerName, flipkartDetails.secondLowestSellerName = flipkartDetails.secondLowestSellerName,flipkartDetails.lowestSellerName
|
| - |
|
2198 |
flipkartDetails.lowestSellerCode, flipkartDetails.secondLowestSellerCode = flipkartDetails.secondLowestSellerCode,flipkartDetails.lowestSellerCode
|
| - |
|
2199 |
flipkartDetails.lowestSellerBuyTrend, flipkartDetails.secondLowestSellerBuyTrend = flipkartDetails.secondLowestSellerBuyTrend,flipkartDetails.lowestSellerBuyTrend
|
| - |
|
2200 |
flipkartDetails.rank=1
|
| - |
|
2201 |
|
| - |
|
2202 |
if flipkartDetails.ourBuyTrend == 'NPrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.lowestSellerSp:
|
| - |
|
2203 |
print "Under NPrefCheap category.Switching data for ",flipkartSerialNumber
|
| - |
|
2204 |
flipkartDetails.lowestSellerSp = flipkartDetails.ourSp
|
| - |
|
2205 |
flipkartDetails.lowestSellerScore = flipkartDetails.ourScore
|
| - |
|
2206 |
flipkartDetails.shippingTimeLowerLimitLowestSeller = flipkartDetails.shippingTimeLowerLimitOur
|
| - |
|
2207 |
flipkartDetails.shippingTimeUpperLimitLowestSeller = flipkartDetails.shippingTimeUpperLimitOur
|
| - |
|
2208 |
flipkartDetails.lowestSellerName = 'Saholic'
|
| - |
|
2209 |
flipkartDetails.lowestSellerCode = flipkartDetails.ourCode
|
| - |
|
2210 |
flipkartDetails.lowestSellerBuyTrend = flipkartDetails.ourBuyTrend
|
| - |
|
2211 |
|
| - |
|
2212 |
#flipkartDetails = fetchDetails(val.fkSerialNumber)
|
| 2212 |
val.flipkartDetails = flipkartDetails
|
2213 |
val.flipkartDetails = flipkartDetails
|
| 2213 |
except Exception as e:
|
2214 |
except Exception as e:
|
| 2214 |
print "Unable to fetch details of %s" %(val.fkSerialNumber)
|
2215 |
print "Unable to fetch details of %s" %(val.fkSerialNumber)
|
| 2215 |
print e
|
2216 |
print e
|
| 2216 |
val.flipkartDetails = None
|
2217 |
val.flipkartDetails = None
|
| 2217 |
return
|
2218 |
return
|