您的位置:首页 > 编程语言 > Python开发

Python+selenium通过设置Cookie绕过验证码登录。

2019-02-20 16:31 1036 查看

selenium+ python3 添加cookie绕过验证码登陆

 1.背景介绍

最近做一个Web自动化项目,但是每次登陆都需要验证码验证,真的是头痛啊,破解验证码需要对验证码图片进行训练模型并且识别率低,查找文档,发现webdriver还提供add_cookie这个方法,完美解决了登录验证的问题。

2.  添加cookie方法:driver.add_cookie()

1.add_cookie(cookie_dict)方法里面参数是cookie_dict,说明里面参数是字典类型。

2.add_cookie的源码。

3. add_cookie字典格式。

[code]cookie = {
"domain": ".baidu.com", # 域名
"name"': name, # cookie的name
"value": value, # cookie的value
"expires": "", # cookie的过期时间
'path': '/', # 路径
'httpOnly': False, # 自行百度,这里不多描述
'HostOnly': False, # 自行百度,这里不多描述
'Secure': False # 自行百度,这里不多描述}

我们可以通过查看谷歌浏览器的cookie构造来校验我们的字典格式

 

3.实践是否能跳过登录----拿百度举例,以下是代码。

[code]"""
@author: luyefei
@file:skip_captcha.py
@time:2019/2/20
"""
from selenium import webdriver
import time

class SkipCaptcha(object):

def __init__(self):
self.driver = webdriver.Chrome()
self.cookie = {"domain": ".baidu.com",
'name': "BAIDUID",
'value': "777DDDB3D7FCC909D29A0D06C9F44166CA8:FG=1",
"expires": "2039-02-15T08:24:00.000Z",
'path': '/',
'httpOnly': False,
'HostOnly': False,
'Secure': True}

def login(self):
driver = self.driver
driver.get("http://www.baidu.com/")
time.sleep(2)
driver.add_cookie(self.cookie)
time.sleep(2)
driver.get("https://i.baidu.com/")

if __name__ == '__main__':
r = SkipCaptcha()
r.login()

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: