Selenium添加Cookie繞過驗證碼登錄

本文以3D片源網站爲例,使用Selenium首先模擬登錄,手動輸入驗證碼,獲取登錄之後的cookie,其次將登錄之後的cookie寫入 .yaml文件,之後登錄時直接讀取文件。

首先獲取登陸後的cookie,並寫入文件。

import yaml,time,os
from selenium import webdriver
url = 'http://www.3dpianyuan.net/'
driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
time.sleep(2)
driver.find_element_by_id('ls_username').clear()
driver.find_element_by_id('ls_username').send_keys('xxx')
driver.implicitly_wait(5)
driver.find_element_by_id('ls_password').clear()
driver.find_element_by_id('ls_password').send_keys('xxx')
print('請輸入驗證碼')
time.sleep(20)
#在等待時間內將驗證碼手動輸入
driver.implicitly_wait(5)
time.sleep(5)
cookiesAfter = driver.get_cookies()
len1 = len(cookiesAfter)
#這裏我沒有比較登錄前後不同的cookie,直接將登陸後的cookie全部保存。
cookie0 = cookiesAfter[0]
cookie1 = cookiesAfter[1]
cookie2 = cookiesAfter[2]
cookie3 = cookiesAfter[3]
cookie4 = cookiesAfter[4]
cookie5 = cookiesAfter[5]
cookie6 = cookiesAfter[6]
cookie7 = cookiesAfter[7]
cookie8 = cookiesAfter[8]
cookie9 = cookiesAfter[9]
cookie10 = cookiesAfter[10]
cookie11 = cookiesAfter[11]
cookie12 = cookiesAfter[12]
cookie13 = cookiesAfter[13]


fileNamePath = os.path.split(os.path.realpath(__file__))[0]
yamlPath = os.path.join(fileNamePath,'config10.yaml')
fw = open(yamlPath,'w',encoding='utf-8')
data = {'cookie0':cookie0,'cookie1':cookie1,'cookie2':cookie2,'cookie3':cookie3,'cookie4':cookie4,'cookie5':cookie5,'cookie6':cookie6,'cookie7':cookie7,
        'cookie8':cookie8,'cookie9':cookie9,'cookie10':cookie10,'cookie11':cookie11,'cookie12':cookie12,'cookie13':cookie13,}

yaml.dump(data,fw)

driver.quit()

接下來就是登錄繞過驗證碼。

url = 'http://www.3dpianyuan.net/forum.php?mod=post&action=reply&fid=2&tid=1401'
driver = webdriver.Chrome()
driver.maximize_window()
driver.delete_all_cookies()
time.sleep(3)
driver.get(url)

fileNamePath = os.path.split(os.path.realpath(__file__))[0]
yamlPath = os.path.join(fileNamePath,'config.yaml')

f = open(yamlPath,'r',encoding='utf-8')
cont = f.read()
conf = yaml.load(cont)
#如果嫌這裏太繁瑣,可以在存儲cookie時,只存儲登陸後和登錄前不一樣的cookie就可以了
cookie0 = conf.get('cookie0')
cookie1 = conf.get('cookie1')
cookie2 = conf.get('cookie2')
cookie3 = conf.get('cookie3')
cookie4 = conf.get('cookie4')
cookie5 = conf.get('cookie5')
cookie6 = conf.get('cookie6')
cookie7 = conf.get('cookie7')
cookie8 = conf.get('cookie8')
cookie9 = conf.get('cookie9')
cookie10 = conf.get('cookie10')
cookie11 = conf.get('cookie11')
cookie12 = conf.get('cookie12')
cookie13 = conf.get('cookie13')
# cookie14 = conf.get('cookie14')
#添加cookie
driver.add_cookie(cookie0)
driver.add_cookie(cookie1)
driver.add_cookie(cookie2)
driver.add_cookie(cookie3)
driver.add_cookie(cookie4)
driver.add_cookie(cookie5)
driver.add_cookie(cookie6)
driver.add_cookie(cookie7)
driver.add_cookie(cookie8)
driver.add_cookie(cookie9)
driver.add_cookie(cookie10)
driver.add_cookie(cookie11)
driver.add_cookie(cookie12)
driver.add_cookie(cookie13)
# driver.add_cookie(cookie14)

print(driver.get_cookies())
time.sleep(5)
driver.get(url)
driver.refresh()
time.sleep(5)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章