from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from pyquery import PyQuery as pq from bs4 import BeautifulSoup from time import sleep import time import traceback import json import os chrome_path = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" # 登录成功后,记录cookie以后好用 def record_cookie(browser): try: cookies = browser.get_cookies() print(cookies) with open('data.json', 'w') as f: json.dump(cookies, f) except: browser.quit() print("no_login_id") # browser.quit() return # 登录时添加记录cookies, def add_cookie(browser): # 加cookies with open('data.json', 'r') as f: data = json.load(f) for c in data: # print(str(c)) if 'expiry' in c: str_ex = str(c["expiry"]) if str_ex.find(".") > -1: list_ex = str_ex.split(".") c["expiry"] = int(list_ex[0]) # print(str(c)) browser.add_cookie(c) # 检测是否登录成功 def check_login(browser): login_flag=get_login_flag(browser) if not login_flag is None: # 没有登录成功 # 人工登录了 sleep(30) for i in range(10): print('第%d次检测登录' % (i)) login_flag=get_login_flag(browser) if login_flag is None: # 登录进了 record_cookie(browser) return True sleep(10) return False print('登录成功') return True # 获取登录页面上的标记 def get_login_flag(browser): try: login_flag = browser.find_element(By.ID, "check_svg__b") except: try: login_flag = browser.find_element(By.CLASS_NAME, "qr-container") except: print("没有找到登录标记,说明已经登录成功") return None return login_flag