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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值