[笔记]自动化中破解验证码

01需求分析

1.打开一个chrome浏览器

2.输入论坛的网址: http://114.116.2.138:8090/forum.php

3.输入用户名admin

4.输入密码123456

5.点击登录

6.输入验证码

7.再点击登录

02准备工作

selenium环境搭建

参考地址:  https://blog.csdn.net/python_jeff/article/details/139613463

图片

03操作步骤

第1步:导入webdriver模块

图片

  • 前提:安装好selenium 环境

  • 需要了解:python导入语法

图片

第2步:打开chrome浏览器

图片

  • 用webdriver模块的Chrome类,对它实例化

  • Chrome首字符大写的,往往是Python中的类名

  • Chrome()这是一个实例化的过程

第3步:输入网址

图片

  • 字面翻译:使用driver.get()在浏览器上输入一个网址

    http://114.116.2.138:8090/forum.php

  • get是HTTP的一种请求方式

    (引申:学接口的要去懂更多的HTTP请求方式,POST/DELETE/PUT)

  • url的标准格式示例:

图片

第4步:输入用户名|密码|点击登录

图片

  • 要会chrome开发者工具

图片

  • 要有HTML的基础

图片

  • find_element源码

图片

  • 八个定位方法:id、css、xpath是最常用的

    • css参考:

      https://www.w3school.com.cn/cssref/css_selectors.asp

  • xpath参考:

    https://www.w3school.com.cn/xpath/xpath_axes.asp

  • WebElement 是ind_element的返回值,可以在这个元素上输入:

    • send_keys

    • 点击:click

    • 获取文本:text

第5步:验证码输入

获取验证码图片

图片

  • 注意用到了css定位的[属性^=属性开头的值]的语法

  • python读写文件的open方法

    • wb是write,bytes

  • ele_pic.screenshot_as_png:就是当前这个元素的bytes数据

  • 首次运行遇到错误

图片

  • 点击了登录后,弹出这个提示,获取验证码,无法定位

  • 点击操作往往会产生新的页面,新的页面加载的时候会出现延迟,这个时候等待就需要加入!!

  • 引申:selenium的等待

    • 强制:sleep

    • 隐式:implicitly_wait

    • 显式等待:

图片

分析验证码的数据

  • ddddocr的用法

  • 导入ddddocr

  • 实例化

  • 用classiication获取bytes数据的文本

图片

输入验证码

  • 跟前面一样的,不再赘述

图片

第6步:点击弹出框的登录

  • 跟前面一样的,不再赘述

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值