Selenium 添加Cookie實現繞過登錄流程


有些簡單的網站我們可以簡單的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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM