码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python一炮句搞定网页登录验证码自动输入


    前言:本来是“账号+密码”的登录方式,突然就增加了验证码输入,还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()

  • 相关阅读:
    Pandas数据库大揭秘:read_sql、to_sql 参数详解与实战篇【第81篇—Pandas数据库】
    Django入门3
    市场周刊杂志市场周刊杂志社市场周刊编辑部2022年第6期目录
    windows docke下载mysql并且配置远程访问
    xxl-job中多节点分片的时候如何在linux服务器开启多个执行器实例?
    RabbitMQ:基本操作使用
    Selenium IDE的安装以及使用
    经纬恒润智能感知后视镜亮相北京车展
    [附源码]Python计算机毕业设计Django校园招聘系统设计
    Charles下载抓包基本流程
  • 原文地址:https://blog.csdn.net/woho778899/article/details/128066739
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号