Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

from BeautifulSoup import BeautifulSoup
import urllib2
import urllib
import MySQLdb
import sys
listCircle = [
['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 = 0

db = 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 =False
    Attempt = 1
    while 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 =True
        except:
            print "In Except Block for Url "+url+" And Circle "+listCircle[j][0]
            print "Retrying :",
            print Attempt
            Attempt = Attempt+1
            if 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 = 1
    for td in rows[5:]:
        if column_count == 1:
            Denomination = td.text
            print "Deno: "+Denomination
            Denomination = float(Denomination)
            column_count = column_count+1
        elif column_count ==2:
            Talktime = td.text
            column_count = column_count+1
            if Talktime == '-' or Talktime == 'NA' or Talktime =='na' or Talktime =='nil' or Talktime =='' or Talktime =='Nil' or Talktime =='NIL':
                Talktime = '0'
            print "talk: "+Talktime
        elif column_count ==3:
            ProcessingFee = td.text
            column_count = column_count+1
            print "Process: "+ProcessingFee
        elif column_count ==4:
            ServiceTax = td.text
            column_count = column_count+1
            print "tax: "+ServiceTax
            try:
                Deduction = float(ProcessingFee)
                print "Deduction: ",
                print Deduction
                if Deduction > (Denomination/2):
                    IsSpecial = 2
                else:
                    IsSpecial = 1
            except:
                '''Case for no service tax and processing fee value in tables'''
                try:
                    Talktime =float(Talktime)   
                    if Talktime > (Denomination/2):
                        IsSpecial =1
                    else:
                        IsSpecial =2
                except:
                    IsSpecial =2
            print "IsSpecial",
            print IsSpecial
        elif column_count ==5:
            Validity = td.text
            if 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+1
            column_count = 1
            print "valid: "+Validity
            cursor = 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+1
cursor = 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()