Rev 16408 | Blame | Compare with Previous | Last modification | View Log | RSS feed
from dtr.utils.utils import fetchResponseUsingProxy, transformUrlfrom sys import exitimport jsonimport tracebackimport datetimeimport chardetclass PaytmScraper:def __init__(self):self.count_trials = 0self.redirectCount = 0def read(self, url):response_data = ""try:"""quick fix,need to add it conf"""response_data = fetchResponseUsingProxy(url, proxy=True)print "Fetched response from paytm for %s" %(url)#redirect_url = response.urlexcept Exception as e:traceback.print_exc()print 'ERROR: ', eprint 'Retrying'self.count_trials += 1if self.count_trials < 3:return self.read(url)self.response_data=response_datareturn self.createData()def createData(self):try:encoding = chardet.detect(self.response_data)try:self.response_data = self.response_data.decode(encoding.get('encoding'))except:self.response_data = self.response_data.decode('ascii')input_json = json.loads(self.response_data)offerPrice = float(input_json['offer_price'])cod = int(input_json['pay_type_supported'].get('COD'))offerUrl = (input_json['offer_url'])inStock = (input_json['instock'])shareUrl = input_json['shareurl']return {'offerPrice':offerPrice,'codAvailable':cod,'offerUrl':offerUrl,'inStock':inStock, 'shareUrl':shareUrl}except:return {'offerPrice':0.0,'codAvailable':0,'offerUrl':"",'inStock':False,'shareUrl':None}if __name__ == '__main__':scraper = PaytmScraper()scraper.read('https://catalog.paytm.com/v1/mobile/product/25735648')