| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from bnet_retriever.utils.cookies import BnetCookieJar
- from bnet_retriever.utils import serialize
- import requests
- import getpass
- from selenium import webdriver
- from selenium.webdriver.chrome.options import Options
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.common.by import By
- import time
- import ipdb
- 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'
- tup = ('accountName', 'password')
- username = input('Your BNet Username:')
- password = getpass.getpass('Your BNet Password:')
- opts = Options()
- opts.add_argument('--window-size=375,812')
- opts.add_argument('--window-position=0,0')
- browser = webdriver.Chrome(options=opts)
- browser.get(url)
- submit_btn = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'submit')))
- browser.find_element_by_id('accountName').clear()
- browser.find_element_by_id('password').clear()
- browser.find_element_by_id('accountName').send_keys(username)
- browser.find_element_by_id('password').send_keys(password)
- submit_btn.click()
- time.sleep(2)
- keys = {key for key, *_ in BnetCookieJar._template}
- browser.get('http://163.com')
- cookies = browser.get_cookies()
- final = {i['name']: i['value'] for i in cookies if i['name'] in keys}
- browser.get('https://shop.battlenet.com.cn/zh-cn')
- cookies = browser.get_cookies()
- final.update({i['name']: i['value'] for i in cookies if i['name'] in keys})
- print('Your Login token is:')
- print(serialize.tostr(final))
|