有些簡單的網站我們可以簡單的send key來輸入賬戶密碼就可以登錄,但是有很多網站需要驗證碼之類的就不太好用了,這時候就體現到了cookie登錄的優點了
創建demo.py
from selenium import webdriver
import time
import json
#填寫webdriver的保存目錄
driver = webdriver.Chrome('../chromedriver.exe')
#記得寫完整的url 包括http和https
driver.get('https://www.baidu.com')
#程序打開網頁后20秒內手動登陸賬戶
time.sleep(30)
with open('cookies.txt','w') as cookief:
#將cookies保存為json格式
cookief.write(json.dumps(driver.get_cookies()))
driver.close()
創建demo2.py
from selenium import webdriver
import time
import json
#填寫webdriver的保存目錄
driver = webdriver.Chrome()
#記得寫完整的url 包括http和https
driver.get('https://www.baidu.com')
#首先清除由於瀏覽器打開已有的cookies
driver.delete_all_cookies()
with open('cookies.txt','r') as cookief:
#使用json讀取cookies 注意讀取的是文件 所以用load而不是loads
cookieslist = json.load(cookief)
for cookie in cookieslist:
driver.add_cookie(cookie)
# 刷新頁面
driver.refresh()
解決Cookie時效性字段
from selenium import webdriver
import json
#填寫webdriver的保存目錄
driver = webdriver.Chrome('../chromedriver.exe')
#記得寫完整的url 包括http和https
driver.get('https://www.baidu.com')
#首先清除由於瀏覽器打開已有的cookies
driver.delete_all_cookies()
with open('cookies.txt','r') as cookief:
#使用json讀取cookies 注意讀取的是文件 所以用load而不是loads
cookieslist = json.load(cookief)
# 方法1 將expiry類型變為int
for cookie in cookieslist:
#並不是所有cookie都含有expiry 所以要用dict的get方法來獲取
if isinstance(cookie.get('expiry'), float):
cookie['expiry'] = int(cookie['expiry'])
driver.add_cookie(cookie)
driver.refresh()
import time
import json
#填寫webdriver的保存目錄
driver = webdriver.Chrome('../chromedriver.exe')
#記得寫完整的url 包括http和https
driver.get('https://www.baidu.com')
#程序打開網頁后20秒內手動登陸賬戶
time.sleep(30)
with open('cookies.txt','w') as cookief:
#將cookies保存為json格式
cookief.write(json.dumps(driver.get_cookies()))
driver.close()
