研究了一下怎麼使用cookie登錄網站,代碼寫的很亂,功能已實現,算是自己記錄一下。
以下是登錄扣扣的例子。
from seleniumbase import BaseCase import json import pickle from time import sleep class GetCookie(BaseCase): def save_cookies(self, i): cookies_dict = {} cookies = self.driver.get_cookies() for cookie in cookies: cookies_dict[cookie['name']] = cookie['value'] with open("cookies.txt" + str(i), 'w+') as file: json.dump(cookies_dict, file) def get_cookies(self): with open('qq.txt', 'r') as file: cookies = json.load(file) # print(cookies) return cookies def test_login(self): tbCookies = self.get_cookies() # 調用get_cookie方法讀取已經獲取的cookie self.driver.get("https://mail.qq.com/cgi-bin/loginpage") for cookie in tbCookies: self.driver.add_cookie({ "domain": ".mail.qq.com", "name": cookie, "value": tbCookies[cookie], "path": '/', "expires": None }) self.driver.get("https://mail.qq.com/cgi-bin/loginpage") sleep(10) # 獲取cookie def stest_getcookie(self): url2 = "https://mail.qq.com/cgi-bin/loginpage" self.open(url2) sleep(5) try: self.click("#img_out") except: print("沒有快捷登錄,請手動掃碼") sleep(10) for i in range(5): sleep(2) self.save_cookies(i) sleep(20) self.driver.refresh() self.save_cookies(i)