selenium自动登陆
阅读原文时间:2023年07月09日阅读:3

import os

from selenium import webdriver
import time,json

class Cookie(object):

def \_\_init\_\_(self,driver,login\_url,url,web\_name):  
    self.driver = driver  
    self.login\_url = login\_url  
    self.url = url  
    self.web\_name = web\_name  

def is\_login(self):  
    self.get\_content(self.url)  
    if self.url != self.driver.current\_url:  
        self.login(self.login\_url)  

def login(self,login\_url):  
    self.driver.get(login\_url)  
    time.sleep(20)  # 在此时输入用户名和密码  
    cookies = driver.get\_cookies()  
    f1 = open(self.web\_name+'.txt', 'w')  
    f1.write(json.dumps(cookies))  
    f1.close()  
    self.get\_content(self.url)  

def get\_content(self,url):  
    if os.path.exists(self.web\_name+".txt"):  
        self.driver.delete\_all\_cookies()  
        self.driver.get(url)  
        print(url)  
        with open(self.web\_name+'.txt') as f:  
            cookie = json.loads(f.read())  
        for c in cookie:  
            if 'expiry' in c:  
                del c\['expiry'\]  
            print(c)  
            driver.add\_cookie(c)  
        self.driver.get(url)  

if __name__ == "__main__":

driver = webdriver.Chrome()  
driver.maximize\_window()  

web\_name = "bokeyuan"  
login\_url = "https://account.cnblogs.com/signin"  
url = 'https://i-beta.cnblogs.com/'  
ck = Cookie(driver,login\_url,url,web\_name)  
ck.is\_login()  

#time.sleep(30)  
#driver.quit()