failed_login.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from bnet_retriever.utils.cookies import BnetCookieJar
  2. from bnet_retriever.utils import serialize
  3. import requests
  4. import getpass
  5. from selenium import webdriver
  6. from selenium.webdriver.chrome.options import Options
  7. from selenium.webdriver.support.ui import WebDriverWait
  8. from selenium.webdriver.support import expected_conditions as EC
  9. from selenium.webdriver.common.by import By
  10. import time
  11. import ipdb
  12. url = 'https://www.battlenet.com.cn/login/zh/?ref=https://www.battlenet.com.cn/oauth/authorize?client_id%3Dnetease-hearthstone-site%26response_type%3Dcode%26scope%3Daccount.basic%2Baccount.full%26redirect_uri%3Dhttps%253A%252F%252Faccount.bnet.163.com%252Fbattlenet%252Flogin%253Finner_client_id%253Dow%2526inner_redirect_uri%253Dhttps%25253A%25252F%25252Fow.blizzard.cn%25252Fbattlenet%25252Flogin%25253Fredirect_url%25253Dhttps%2525253A%2525252F%2525252Fow.blizzard.cn%2525252Fcareer%2525252F&app=oauth'
  13. tup = ('accountName', 'password')
  14. username = input('Your BNet Username:')
  15. password = getpass.getpass('Your BNet Password:')
  16. opts = Options()
  17. opts.add_argument('--window-size=375,812')
  18. opts.add_argument('--window-position=0,0')
  19. browser = webdriver.Chrome(options=opts)
  20. browser.get(url)
  21. submit_btn = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'submit')))
  22. browser.find_element_by_id('accountName').clear()
  23. browser.find_element_by_id('password').clear()
  24. browser.find_element_by_id('accountName').send_keys(username)
  25. browser.find_element_by_id('password').send_keys(password)
  26. submit_btn.click()
  27. time.sleep(2)
  28. keys = {key for key, *_ in BnetCookieJar._template}
  29. browser.get('http://163.com')
  30. cookies = browser.get_cookies()
  31. final = {i['name']: i['value'] for i in cookies if i['name'] in keys}
  32. browser.get('https://shop.battlenet.com.cn/zh-cn')
  33. cookies = browser.get_cookies()
  34. final.update({i['name']: i['value'] for i in cookies if i['name'] in keys})
  35. print('Your Login token is:')
  36. print(serialize.tostr(final))