def driver_to_requests(driver: webdriver) -> requests.sessions.Session: cookies = driver.get_cookies() driver.close() session = requests.Session() for cookie in cookies: session.cookies.set(cookie["name"], cookie["value"]) return session
def login(driver: webdriver, username: str, password: str) -> object: # Load page driver.get("https://www.instagram.com/accounts/login/") # Wait for 2FA or Profile link to appear WebDriverWait(driver, 10).until( EC.presence_of_element_located( (By.CSS_SELECTOR, "button[type='submit']"))) # Login driver.find_element_by_css_selector("input[name='username']").send_keys( username) driver.find_element_by_css_selector("input[name='password']").send_keys( password) driver.find_element_by_css_selector("button[type='submit']").click() # Wait for 2FA or Profile link to appear WebDriverWait(driver, 30).until( EC.presence_of_element_located( (By.CSS_SELECTOR, "a span[aria-label='Profile']"))) cookies = driver.get_cookies() pickle.dump(cookies, open(f"{COOKIES_PATH}/instagram-cookies.pkl", "wb")) return cookies
def login(user: User, enel_session: EnelMedSession, driver: webdriver) -> int: driver.get(LOG_IN_URL) all_cookies = driver.get_cookies() driver.close() cookies_str = create_cookies_header(all_cookies) enel_session.headers['cookie'] = cookies_str payload = { "Login": user.username, "Password": user.password, "IsAcceptedRule": "true" } response = enel_session.session.post(LOG_IN_URL, headers=enel_session.headers, data=payload) print(response.text)
def _selenium_operations(driver: webdriver, user_name: str, user_password: str): # 登录界面 Util.info_print('登录界面', 3) driver.get('https://users.nexusmods.com/auth/sign_in') Util.info_print('请在页面中登录N网账户', 3) Util.info_print('如果设置在conf.ini的账户密码正确,这个过程会自动完成。', 3) Util.info_print('如果不正确,请手动输入账户密码', 3) Util.info_print('每一步操作都设置了一定的的可行时间,超过时间程序就会退出', 3) wait = WebDriverWait(driver, 300) username_inputer = wait.until( presence_of_element_located((By.ID, "user_login"))) userpassword_inputer = wait.until( presence_of_element_located((By.ID, "password"))) commit_button = wait.until( presence_of_element_located((By.XPATH, '//input[@type="submit"]'))) username_inputer.send_keys(user_name) userpassword_inputer.send_keys(user_password) commit_button.click() wait.until(EC.url_changes) # 欢迎界面 index_a = wait.until( EC.presence_of_element_located( (By.XPATH, '//div[@class="links"]/div[@class="left-link"]/a[1]'))) index_a.click() Util.info_print('等待进入首页,请勿操作', 3) # 返回首页后 # Util.info_print('等待从首页中获取cookies', 3) wait.until( EC.presence_of_element_located( (By.CSS_SELECTOR, ".intro > h1:nth-child(1)"))) nexus_cookies_list = driver.get_cookies() driver.quit() nexus_cookies = dict() for cookie in nexus_cookies_list: nexus_cookies[cookie['name']] = cookie['value'] return nexus_cookies
def _selenium_operations(driver: webdriver, user_name: str, user_password: str): # 登录界面 _info_print('Coo_5') driver.get('https://users.nexusmods.com/auth/sign_in') _info_print('Coo_6') _info_print('Coo_7') _info_print('Coo_8') _info_print('Coo_9') wait = WebDriverWait(driver, 300) username_inputer = wait.until( presence_of_element_located((By.ID, "user_login"))) userpassword_inputer = wait.until( presence_of_element_located((By.ID, "password"))) commit_button = wait.until( presence_of_element_located((By.XPATH, '//input[@type="submit"]'))) username_inputer.send_keys(user_name) userpassword_inputer.send_keys(user_password) commit_button.click() wait.until(EC.url_changes) # 欢迎界面 index_a = wait.until( EC.presence_of_element_located( (By.XPATH, '//div[@class="links"]/div[@class="left-link"]/a[1]'))) index_a.click() _info_print('Coo_10') # 返回首页后 # Util.info_print('等待从首页中获取cookies', 3) wait.until( EC.presence_of_element_located( (By.CSS_SELECTOR, ".intro > h1:nth-child(1)"))) nexus_cookies_list = driver.get_cookies() driver.quit() nexus_cookies = dict() for cookie in nexus_cookies_list: nexus_cookies[cookie['name']] = cookie['value'] return nexus_cookies