Blame | Last modification | View Log | RSS feed
from BeautifulSoup import BeautifulSoupimport urllib2import urllibimport MySQLdbimport syslistCircle = [['Andhra Pradesh','12',1],['Assam','20',2],['Bihar','17',3],['Chennai','6',4],['Delhi NCR','2',5],['Gujarat','10',6],['Haryana','15',9],['Himachal Pradesh','13',7],['Jammu','22',8],['Karnataka','4',10],['Kerela','7',11],['Kolkata','5',12],['MP','8',14],['Maharashtra','11',13],['Mumbai','3',15],['North East','25',16],['Orissa','18',17],['Punjab','1',18],['Rajasthan','23',19],['Tamil Nadu','14',20],['UP East','19',21],['UP(West)','9',22],['West Bengal','16',23]]j = 0db = MySQLdb.connect("localhost","root","shop2020","transaction" )url = "http://www.airtel.in/applications/xm/MobilePrepaidTariffTab_ExistingUser.jsp?"http_header = {"User-Agent" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1","Accept" : " text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language" : "en-us,en;q=0.5","Accept-Encoding" : "gzip, deflate","Connection" : "keep-alive","Accept-Charset" : "ISO-8859-1","Content-type": "application/x-www-form-urlencoded"}for i in listCircle:data = {'CIRCLE' : listCircle[j][1],'CIRCLENAME' : listCircle[j][0],'link' : 'VR'}print listCircle[j][0]Connected =FalseAttempt = 1while not Connected:try:data = urllib.urlencode(data)req = urllib2.Request(url, data)response = urllib2.urlopen(req)page = response.read()page=page.decode("utf-8")soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)Connected =Trueexcept:print "In Except Block for Url "+url+" And Circle "+listCircle[j][0]print "Retrying :",print AttemptAttempt = Attempt+1if Attempt ==4:sys.exit(1)Rechargetables = soup.findAll("ul" , {"class" : "listexpander"})rows = Rechargetables[0].findAll("li")table = soup.findAll("table" , {"class" : "arial11grey"})rows = table[1].findAll("td")column_count = 1for td in rows[5:]:if column_count == 1:Denomination = td.textprint "Deno: "+DenominationDenomination = float(Denomination)column_count = column_count+1elif column_count ==2:Talktime = td.textcolumn_count = column_count+1if Talktime == '-' or Talktime == 'NA' or Talktime =='na' or Talktime =='nil' or Talktime =='' or Talktime =='Nil' or Talktime =='NIL':Talktime = '0'print "talk: "+Talktimeelif column_count ==3:ProcessingFee = td.textcolumn_count = column_count+1print "Process: "+ProcessingFeeelif column_count ==4:ServiceTax = td.textcolumn_count = column_count+1print "tax: "+ServiceTaxtry:Deduction = float(ProcessingFee)print "Deduction: ",print Deductionif Deduction > (Denomination/2):IsSpecial = 2else:IsSpecial = 1except:'''Case for no service tax and processing fee value in tables'''try:Talktime =float(Talktime)if Talktime > (Denomination/2):IsSpecial =1else:IsSpecial =2except:IsSpecial =2print "IsSpecial",print IsSpecialelif column_count ==5:Validity = td.textif Validity == '-' or Validity == 'NA' or Validity =='na' or Validity =='nil' or Validity =='' or Validity =='Nil' or Validity =='NIL' or Validity =='0':Validity = '0'if IsSpecial ==1 and (Validity =='lifetime' or Validity =='Lifetime' or Validity =='life time' or Validity=='Life Time' or Validity =='Life time' or Validity== 'UNLIMITED' or Validity== 'unlimited' or Validity== 'Unlimited' or Validity== 'Unlimted'):Validity='0'column_count = column_count+1column_count = 1print "valid: "+Validitycursor = db.cursor()sql = "INSERT INTO rechargedenomination (operatorId, circleId, denominationType, validity, amount, description)\VALUES ('%d', '%d', '%d', '%s', '%s', '%s' )" % \(7, listCircle[j][2], IsSpecial, Validity, Denomination, Talktime)cursor.execute(sql)db.commit()j = j+1cursor = db.cursor()sql = "delete from rechargedenomination where operatorId=7 and ((description like '%foot%' OR description like '%*' OR description like '%refer%') OR (validity like '%foot%' OR validity like '%*' OR validity like '%refer%'))"cursor.execute(sql)sql_setdenomination ="update rechargedenomination set denominationType=1 where (validity like '%top up%' OR validity ='main acc validity' OR validity ='Main a/c talktime' )"cursor.execute(sql_setdenomination)db.commit()db.close()