Advertisement
Guest User

Untitled

a guest
May 10th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.05 KB | None | 0 0
  1. import requests
  2. import pprint
  3. import re
  4. from string import ascii_letters
  5. from bs4 import BeautifulSoup as bs4
  6. pp = pprint.PrettyPrinter(indent=4).pprint
  7.  
  8. username = r'xxxxxxxxxxx'
  9. password = r'xxxxxxxxx'
  10. account_id = 'xxxxxxxxxxxxxxxxxx'
  11.  
  12. logon_url = 'https://c2g.toaks.org/Click2GovCX/logonuser.html'
  13.  
  14.  
  15. def get_csrf(text):
  16.     soup = bs4(text, 'html.parser')
  17.     csrf_token = soup.find('input', {'name': 'OWASP_CSRFTOKEN'})['value']
  18.     return csrf_token
  19.  
  20.  
  21. def login(s, r):
  22.     csrf_token = get_csrf(r.text)
  23.     payload = {
  24.         'email.emailId': username,
  25.         'onsubmitLogonUser': 'Logon',
  26.         'pageUsedCode': 'userAuthLogonUser',
  27.         'OWASP_CSRFTOKEN': csrf_token,
  28.         'password': password
  29.     }
  30.     r = s.post(logon_url, data=payload)
  31.     return r
  32.  
  33.  
  34. def account_url(text):
  35.     soup = bs4(text, 'html.parser')
  36.     account_url = base_url + (soup.find('a', {'title': 'Account Information'})['href'])
  37.     return account_url
  38.  
  39.  
  40. def get_balance(r):
  41.     soup = bs4(r.text, 'html.parser')
  42.     rows = soup.find_all('div', {'class': 'form-group dataRow'})
  43.     for row in rows:
  44.         m = re.search('Account Balance', row.text)
  45.         if m:
  46.             for i in row.find_all('span'):
  47.                 balance = row.find('span', {'class': 'col-xs-12 col-sm-7 col-md-9 form-control-static'}).text
  48.                 if balance is None:
  49.                     # Nick is trying to fuck with me.
  50.                     balance = ''
  51.                     for i in row.find_all('span'):
  52.                         balance = balance + i.text
  53.                 balance = balance_strip(balance)
  54.     return balance
  55.  
  56.  
  57. def balance_strip(text):
  58.     arr = (
  59.         '$',
  60.         '\r',
  61.         '\n',
  62.         '*',
  63.         ' '
  64.     )
  65.     for a in arr:
  66.         text = text.replace(a, '')
  67.     return text
  68.  
  69.  
  70. def balance():
  71.     with requests.Session() as s:
  72.         r = s.get(logon_url)
  73.         r = login(s, r)
  74.         url = account_url(r.text)
  75.         r = s.get(url)
  76.     b = get_balance(r)
  77.     return b
  78.  
  79.  
  80. if __name__ == '__main__':
  81.     balance()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement