忙了一段时间没来学习了,今天学习下如何跳过登录验证码登录

首先我们很多系统的登录机制都会有短信验证或者图形验证等,每次自动化代码走到登录的时候,因为随机的验证码,导致无从下手

其实据我所知是有很多种方法可以做到识别验证码或者抓取验证码插入的,不过今天我们先一起学习下如何通过cookie绕过验证码登录系统

用百度的登录做个例子:

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.baidu.com/")

driver.find_element_by_link_text("登录").click()

t = driver.switch_to_alert()

#切换到alert弹窗

driver.find_element_by_css_selector("[class='tang-pass-footerBarULogin pass-link']").click()

这个时候就到了输入用户名和密码的窗口了,接着写入用户名 和密码点击登录的代码:

driver.find_element_by_css_selector("[class='pass-text-input pass-text-input-userName']").send_keys("XXX")

driver.find_element_by_css_selector("[class='pass-text-input pass-text-input-password']").send_keys("XXX")

driver.find_element_by_css_selector("#TANGRAM__PSP_10__submit").click()

这个时候你就发现,弹出的手机验证码的页面,即使发送了验证码,系统也无法接收到手机验证码,所以一般的流程下是无法使用自动化代码登录成功的

这里带入一些driver.cookie的方法,

1.get_cookies():获取所有 cookies

2.driver.get_cookie(name):获取指定 name 的 cookie:

3.清除指定 cookie:delete_cookie()

4.delete_all_cookies():清除所有 cookies

5.add_cookie(cookie_dict):添加 cookie

我们要用的就是第五个,添加登录后的cookie值来绕过登录验证码

首先通过get_cookies()获取所有 cookies 格式如下:

[{'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '1431_21104_18559_28131_28267'}, {'domain': '.baidu.com', 'httpOnly': False, 'name': 'delPer', 'path': '/', 'secure': False, 'value': '0'}, {'domain': '.baidu.com', 'expiry': 3695019135.360794, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': 'B972D8DB7A1AA0C96556FD1E705B8071:FG=1'}, {'domain': '.baidu.com', 'expiry': 3695019135.36084, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '1547535489'}, {'domain': '.baidu.com', 'expiry': 3695019135.360821, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': 'B972D8DB7A1AA0C96556FD1E705B8071'}, {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '0'}, {'domain': 'www.baidu.com', 'expiry': 1548399488, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '12314353'}]

再使用抓包工具fiddler 抓取登录后的cookie,登录前和登录后的对比 登录后会多出的cookie数据:

BDUSS=10cjB0UWdKWGt5UUhBcWxrR3MzV3ZFWW12Zk5KNkkyRjFPdHI3cGxyeWpFV1ZjQVFBQUFBJCQAAAAAAAAAAAEAAADTqzeQuu.....

对应的name值为‘’BDUSS‘’

对应的value值为‘’10cjB0UWdKWGt5UUhBcWxrR3MzV3ZFWW12Zk5KNkkyRjFPdHI3cGxyeWpFV1ZjQVFBQUFBJCQAAAAAAAAAAAEAAADTqzeQuu.....‘’

我们截取cookie格式的第一个括号内容:

{'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '1431_21104_18559_28131_28267'}

然后执行cookie内容的替换和添加:

完整代码如下

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.baidu.com/")

cookie = {u'domain': u'.baidu.com',

u'httpOnly': False,

u'name': u'BDUSS',

u'path': u'/',

u'secure': False,

u'value': u'JXTlVLYjhtWEJvOG55VUlBM3NpbGFYT0lSVXVDQk1SN1NkWlFPWHJjalpEbVZjQVFBQUFBJCQAAAAAAAAAAAEAAADTqzeQuu.....}

driver.add_cookie(cookie)

#添加登录后的cookie跳过登录验证

driver.refresh()

#刷新页面

这样我们就可以不用烦验证码的随机性了,直接就可以登录系统了

注:

1.fiddle的抓包工具不会使用的话可以再百度上找,挺简单的,也挺使用的工具

2.登录时候要勾选下次自动登录按钮

3.add_cookie()只添加 name 和 value,对于博客园的登录是不成功。

4.本方法并不适合所有的网站,一般像百度这种记住登录状态的才会适

python如何登录一个需要第三方验证的网站_python+selenium 之如何跳过登录验证相关推荐

  1. python淘宝爬虫登陆功能和下单功能_Python爬虫实战五之模拟登录淘宝并获取所有订单 | 静觅...

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...

  2. python自动化测试登录_Python selenium自动化测试框架入门实战--登录测试案例

    本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件. ...

  3. python语言编写一个生成九宫格图片的代码_python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做 ...

  4. python爬虫登录网站_python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!...

    你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对 那么 接下来就是 登录的常见方法无非 ...

  5. python接口自动化 一个变量 其他接口要用_python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)...

    简介 上一篇和大家一起科普扫盲接口后,知道什么是接口,接口类型等,对其有了大致了解之后,我们就回到主题-接口测试. 什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 ...

  6. 微信每日早安推送,自定义推送名称,企业号推送非订阅号测试号,python源码,无需第三方多个网站注册、无第三方接口,无基础快速上不了手

    手把手教你微信每日推送早安,目前为止效果最好版本. 先看效果吧 消息内容样式: 开始搞起来 基础搭建·企业微信 第一步:注册企业微信 然后获取企业ID:点击上面我的企业,在页面最下面有一个企业ID,也 ...

  7. python通过cookie绕过验证码_Python Selenium Cookie 绕过验证码实现登录示例代码

    之前介绍过通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1.直接看代码,内有详细注释说明 # FileName : Wm_Cookie ...

  8. python语言编写一个生成九宫格图片的代码_Python切割图片成九宫格的示例代码

    这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理非常简单,那 ...

  9. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

最新文章

  1. 一个很简单小数正负数行转列问题
  2. LeetCode 213 House Robber II Python
  3. 医院无线网络系统设计
  4. 建议收藏 | 全面解析 50+条 SQL 语句性能优化策略
  5. 【图像超分辨率】Understanding Deformable Alignment in Video Super-Resolution
  6. mysql zip 安装
  7. 如何判断SVG事件对象中的鼠标来源?
  8. 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )
  9. 【双轨】分销+量碰+返利+加权分红源码系统 演示网站
  10. 罗振宇《时间的朋友2018》+视频4小时 百度网盘
  11. 会议记录管理系统(5) -浏览会议记录模块设计
  12. java版本电子招标采购系统源码—企业战略布局下的采购
  13. ES的mapping配置详解
  14. 联想y7000电脑未正确启动_联想拯救者Y7000P装win7系统蓝屏|联想Y7000P重装系统蓝屏怎么解决...
  15. java sub函数,请问Sub子过程与Function函数过程有什么区别?
  16. chrom浏览器模拟手机访问
  17. -wl,-soname的作用
  18. html 左右滑动广告,知乎左右滑动无广告
  19. electron应用通过web页面按钮唤醒
  20. sql又双叒叕报错了

热门文章

  1. 短域名Andy.ge 安迪哥的启用
  2. 在服务器 和 虚拟机中 查看代码 samba source insight
  3. PS问题汇总2017
  4. 【洛谷P3932】浮游大陆的68号岛【前缀和】
  5. V 社秘密开发 Steam 跨系统兼容工具;甲骨文开源 GraphPipe,机器学习模型标准
  6. keplergl,一款超炫的地理数据可视化神器!
  7. SMTP错误码/具体原因
  8. [产品分析] Palm Pre,iPhone,Gphone全面大比拼
  9. 笔记本合上盖子锁定计算机,解决:win10笔记本电脑不合上盖子时也锁定
  10. 女孩子录取了计算机类,苏州中学小女生录取藤校康奈尔工程计算机专业!看介绍,学攻略!...