Python一炮句搞定网页登录验证码自动输入

news2024/11/30 14:30:37

前言:本来是“账号+密码”的登录方式,突然就增加了验证码输入,还30秒一变。

 查看元素

链接为一个png图片文件,每半分钟一更新,意思就是慢了还不行。

思路:OCR识别图片中的文本。图片的网络地址直接传送识别?不行。保存图片文件到本地,再识别?不好。截屏再剪切局部区域,太麻烦。直接利用selenium自带的screenshot_as_png高效实现。

步骤:

1.百度OCR吧,pip install baidu-aip安装。以前用过,现在居然收费了,一年50块10000次,腾讯好象还可以免费用(ID都在单位电脑上,上班再试试),算了,就急,先用吧。安装后要导入:from aip import AipOcr,当然三个字串不能少:APP_ID、API_KEY、SECRET_KEY。

2.代码

def mark_ocr(png_data):##
    client = AipOcr("15441825", "VAg0XiGrW2j1MfMK43Bzmoy5", "3GuciPY1Ziqp4FrTIYcfjGL1Lh95HG7o")
    res = client.basicGeneral(png_data, {})
    txt=res['words_result'][0]['words']
    return txt
    
def login():
    print('开始登录...')
    obj.get(url_login)
    WebDriverWait(obj,60).until(EC.visibility_of_any_elements_located((By.XPATH,'//*[@id="username"]')))
    pic_obj=obj.find_element_by_id('img_code')#查找验证码图片
    png_data=pic_obj.screenshot_as_png#局部剪切为图片PNG数据
    mark_txt=mark_ocr(png_data)#送百度在线识别为验证码文本
    obj.find_element_by_name('username').send_keys('ID123456')
    obj.find_element_by_id('password').send_keys('X123456abc')
    print(u'账号密码输入完成!')
    obj.find_element_by_id('imgcode').send_keys(mark_txt)#
    print(u'验证码输入完成!')#
    obj.find_element_by_id('fm-login-submit').click()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【并发】Java并发线程池底层原理详解与源码分析(下)

【并发】Java并发线程池底层原理详解与源码分析(下) 前情回顾 上篇文章地址 【并发】Java并发线程池底层原理详解与源码分析(上)_面向鸿蒙编程的博客-CSDN博客线程池不允许使用 Executors 去创建,而是通过 ThreadPo…

浅析数据迁移工具Sqoop

title: Sqoop系列 第一章 Sqoop理论 1.1 概述 sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。 导入(Import)数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统 导出&…

八、Gateway

文章目录一、Gateway网关1.网关的作用二、配置网关1.创建gateway模块2.引入依赖3.编写application.yml4.启动gateway模块,查看是否能访问user-service服务三、路由断言工厂Route Predicate Factory四、GatewayFilter(过滤器)1.添加过滤器方式…

IDEA2022用maven创建的Servlet项目

因为博主太菜太笨,总是记不住大佬教的步骤,写一篇博客记录一下。 有什么不对,或者疑惑可以请假这位大佬(没错就是那个被我问烦的大佬)ljj大佬 第一步:新建maven 新建Project 选择webapp 初始界面需要等待…

S32K144之ADC

一,S32K144的ADC介绍 1,ADC模块特性 S32K14x和S32K14xW包含两个12位ADC模块,ADC0和ADC1。 S32K11x包含一个12位的ADC模块,ADC0。 不同封装,ADC0和ADC1所包含的通道数不一样,LQFP100来说ADC0和ADC1分别有16…

Spark - RDD 算子介绍及使用 Scala、Java、Python 三种语言演示

一、RDD 的起源 在 RDD 出现之前, 当时 MapReduce 是比较主流的, 而 MapReduce 如何执行流程如下: 多个 MapReduce 任务之间只能通过磁盘来进行传递数据,很明显的效率低下,再来看 RDD 的处理方式: 整个过程是共享内存的, 而不需…

利用pycharm调试ssh远程程序,并实时同步文件

或许你的服务器由于设置问题,不能通过Vscode进行远程调试python程序,那么本篇文章提供了利用pycharm远程调试程序的方法,且使用的编译器可以是服务器中的虚拟环境的编译器,可以实时同步本地与服务器的文件内容。希望对你能够有所帮…

【Oracle系列1】Oracle 的connect权限和create session的区别

【Oracle系列1】Oracle 的connect权限和create session的区别 背景 oracle数据库新建用户之后是无法登录的,需要赋予connect角色或者create session权限。 注意: connect是角色不是权限,create session是权限不是角色。角色是权限的集合。…

c++中的结构体

结构体:属于用户自定义的数据类型,允许用户存储不同的数据类型 语法:struct 结构体名 {结构体成员列表};通过结构体创建变量的三种方式:1、struct 结构体名 变量名2、struct 结构体名 变量名{成员1值,成员…

第一个Shader程序

shader 很复杂,我学习的过程中也确实感受到了,需要会数学、图形学、编程语法等等知识。不如让我们直接看看 Shader 到底是什么?直接应用起来。或许没有那么复杂。 1、在场景中新建一个正方体,如下图 2、在 project 面板下新建一…

超级棒,使用 LIME 和 SHAP 可轻松解释机器学习模型的预测

在本文中,我将介绍两个可以帮助了解模型的决策过程的模型 LIME 和 SHAP。 作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。 文章目录技术提升模型SH…

day02 redis

day02 Redis 第一章 Redis持久化机制 Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘(文件)中,这一过程就是持久化。Redis 提供了一系列不同的持久化选项&#x…

MyBatis框架入门(含实例)

目录 1.MyBatis简介 2.ORM框架 3.数据持久化 4.Mybatis入门实战案例 4.1 下载mybatis的jar包 4.2 将jar包导入工程中 4.3 配置Mybatis的核心配置文件 4.3.1 MyBatis核心文件模板(mybatis-config) 4.3.2 mybatis-config模板的设置 4.4 创建User 实体类 4.5定义DAO层M…

11.25学到的东西==命令行

创建文件,可以直接选择文件之后再加上.py import argparse# 单个参数 # 创建解析器 # ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。 parser argparse.ArgumentParser() # 单独的参数 square 之后这个help就是提示的信息 # 显示给定数字…

【药材识别】基于matlab GUI SVM色差色温判断药材炮制程度系统【含Matlab源码 2241期】

⛄一、SVM色差色温判断药材炮制程度系统简介 本课题来源于"十二五"国家科技支撑计划项目(2012BAI29B11).颜色是中药质量标准中性状评价极为重要的内容,但传统的中药颜色检测大多依靠人的感官评估,人对颜色的辨别是一个非常复杂的过程,受到光学,视觉生理,视觉心理等诸…

JDBC操作数据库实现增、删、查、改

0.JDBC概念 实际开发中,手动的输入SQL语句是少之又少,大多数情况下是通过编译代码进行来控制自动执行. 具体操作如下: 上述展示有一个【自己写的Mysql客户端】,这种操作是非常容易的,因为各种数据库本身就提供一系列的API,可以让用户很方便…

wordpress 安装主题显示要配置FTP的解决办法

目录 问题复现 1、在安装插件的时候会弹出一个窗口 2、输入相关信息后显示失败 问题解决方法 1、查看wordpress文件权限 2、修改wordpress文件权限 3、插件安装完后,将权限改回 场景:基于Linux 的 wordpress 安装主题显示要配置FTP 安装插件或者主…

RegExp 对象

文章目录RegExp 对象创建RegExp对象正则表达式语法RegExp 对象方法支持正则表达式的 String 对象的方法RegExp.prototype[search]()replace() 方法match()常用正则表达式RegExp 对象 RegExp对象表示正则表达式,是由普通字符和特殊字符(也叫元字符或限定符)组成的文…

基于节点分层的配网潮流前推回代方法matlab程序(IEEE33节点潮流计算)

基于节点分层的配网潮流前推回代方法matlab程序(IEEE33节点潮流计算) 摘要:结合配电网特有的辐射状特点,提出了一种新的基于节点分层的配网潮流前推回代方法。该方法利用配网支路及其节点参数所形成的节点-节点关联矩阵推导出节点…

MiniAlphaGo黑白棋 蒙特卡洛搜索

做个笔记。 一、蒙特卡洛在黑白棋的应用 输入:棋盘𝑏𝑜𝑎𝑟𝑑、当前执子方𝑐𝑜𝑙𝑜𝑟、搜索时间𝑡𝑖𝑚&#x…