Selenium工具:图片验证码识别技术(小白技术)

这篇具有很好参考价值的文章主要介绍了Selenium工具:图片验证码识别技术(小白技术)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

有人开发了一个识别图片验证码的工具库ddddocr,原来题主之前有讲过,遇到这种问题就放弃或者协商,去识别存在一定开发成本或者是错误成本,毕竟正确率并没有达到100,即使是ddddocr,只有万能验证码或者不校验才是万全之策,如果它需要在生产环境运行呢?那就不能这样玩了,所以还是需要去开发对应的脚本来解决这个问题,想要保障准确率呢就选择花钱,如果无所谓就使用ddddocr库就可以了。

目的

很多时候,这样的问题应用于爬虫,或者说是UI自动化测试,但是很多时候都只是发自于个人的兴趣爱好,与实际工作关系并不十分密切。所以很多小白,在一头扎进来的时候就埋头苦干,从来不考虑经济效益!投入产出比很明显是亏的,还干得津津有味,当作是提升自己的一种方式;其实不然,这种顶多只是看起来很努力,自己却从来不思考。

介绍

[ddddocr第三方库](https://github.com/sml2h3/ddddocr),需要python环境>=3.8,安装pip install ddddocr

使用

以下函数只是封装了,且只对已保存为图片格式的文件有效,如果是那种base64位的还需要再给写入文件才能操作。

def get_captcha(img_url, filename=os.path.join(screen_dir, "captcha.png")):
    """通过元素的src属性来download图片"""
    requestd.urlretrieve(img_url, filename=filename)
    with open(os.path.join(screen_dir, "captcha.png"), "rb") as pf:
        img_bytes = pf.read()
    captcha = ocr.classification(img_bytes)
    return captcha

selenium图形验证码,【Python版】Web自动化测试实战,兼职Python项目开发,selenium,python,chrome文章来源地址https://www.toymoban.com/news/detail-544648.html

代码演示

import os
import urllib.request as requestd
from time import sleep

import ddddocr
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

from Common.conf_dirs import screen_dir

ocr = ddddocr.DdddOcr()

driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.maximize_window()

driver.get("http://192.168.2.211/login")

img_url = driver.find_element(By.CSS_SELECTOR, "div.login-captcha>img").get_attribute("src")


def get_captcha(img_url, filename=os.path.join(screen_dir, "captcha.png")):
    """通过元素的src属性来download图片"""
    requestd.urlretrieve(img_url, filename=filename)
    with open(os.path.join(screen_dir, "captcha.png"), "rb") as pf:
        img_bytes = pf.read()
    captcha = ocr.classification(img_bytes)
    return captcha


captcha = get_captcha(img_url)

driver.find_element(By.XPATH, "//input[@placeholder='请输入用户名']").send_keys("***********")
driver.find_element(By.XPATH, "//input[@placeholder='请输入密码']").send_keys("**********")
driver.find_element(By.XPATH, "//input[@placeholder='请输入验证码']").send_keys(captcha + "1")
driver.find_element(By.XPATH, "//span[text()='登录']").click()

flag = True

while flag:
    ele = driver.find_element(By.XPATH, "//p[contains(text(),'验证码不正确')]")
    if ele:
        print("出现了")
        img_url = driver.find_element(By.CSS_SELECTOR, "div.login-captcha>img").get_attribute("src")
        captcha = get_captcha(img_url)
        driver.find_element(By.XPATH, "//input[@placeholder='请输入验证码']").clear()
        driver.find_element(By.XPATH, "//input[@placeholder='请输入验证码']").send_keys(captcha)
        driver.find_element(By.XPATH, "//span[text()='登录']").click()
        sleep(2)
        print("登录了")
    if not ele:
        print("跳出")
        break

action = ActionChains(driver)
action.move_to_element(driver.find_element(By.CSS_SELECTOR, ".el-popover__reference-wrapper")).click().perform()
driver.find_element(By.XPATH, "//li[contains(text(),'订单管理')]").click()

"""
driver.find_element(By.XPATH, "//input[@placeholder='全部订单状态']").click()
eles = driver.find_elements(By.XPATH, "/html/body/div[4]/div[1]/div[1]/ul/li")
for ele in eles:
    # ele.click()
    driver.execute_script("arguments[0].click()", ele)
    option = ele.get_attribute("key")
    driver.find_element(By.XPATH, "//input[@placeholder='{}']".format(option)).click()
    sleep(0.5)
"""
# driver.find_element(By.XPATH, "//input[@placeholder='开始下单时间']").send_keys("2022-07-04 00:00:00")
# driver.find_element(By.XPATH, "//input[@placeholder='结束下单时间']").send_keys("2022-08-25 00:00:00")
# driver.find_element(By.XPATH,"//span[text()='查询']").click()
# driver.find_element(By.XPATH,"//span[text()='导出Excel']").click()

driver.quit()

到了这里,关于Selenium工具:图片验证码识别技术(小白技术)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium自动填写验证码(偏小白版本OCR)

    我直接 上代码 主要难点就是安装Tesseract-OCR了,去GItHub上搜一搜,去搜索引擎上搜一搜就能下载到了  然后就是使用tesseract_cmd 指定你的tesseract.exe的位置 Tesseract就是一个别人开发好的用来识别验证码的工具,下载好之后是为了给Python调用的 而pytesseract这个库就是为了调用Te

    2024年04月16日
    浏览(27)
  • Selenium图片滑块验证码

    因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方,计算要滑动的距离 规划路线,移动

    2024年02月13日
    浏览(35)
  • [Python自动化]selenium之验证码识别

    这一专栏,将以目的为导向,以简化或自动化完成工作任务为目标,将Python运用于实践中,解决实际问题,以激发读者对这门脚本语言的学习兴趣。在开始Python自动化相关实战的学习前,建议对 Python语言本身 以及 Python 爬虫 的相关知识展开一定的学习与了解。对此博客已开

    2023年04月08日
    浏览(38)
  • Selenium+2Captcha 自动化+验证码识别实战

    本文深入探讨了使用Selenium库进行网页自动化操作,并结合2Captcha服务实现ReCAPTCHA验证码的破解。内容涵盖Selenium的基础知识、验证码的分类、2Captcha服务的使用,以及通过实例进行的详细讲解,最后对实践进行总结和优化思考,为读者提供了一条完整的验证码破解实践路线图

    2024年02月14日
    浏览(39)
  • Selenium 初步使用之自动登录(包含识别验证码),超级详细

    初次开始使用Selenium,于是开始用登录作为联手项目,是一个真实的登录界面,包含验证码(验证码是难点,获取与识别),以下会讲的很详细,我怕我下次又忘记了 我采用Selenium + python + 百度云OCR,安装等教程自行百度,我就不多说了 这段代码主要是利用selenium打开网站,

    2024年02月02日
    浏览(27)
  • 爽,我终于掌握了selenium图片滑块验证码

    因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是 用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方,计算要滑动的距离 规划路线,移动

    2024年01月19日
    浏览(26)
  • 爽,我终于搞定了selenium图片滑块验证码

    因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是 用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方,计算要滑动的距离 规划路线,移动

    2024年02月06日
    浏览(25)
  • Selenium 自动化测试如何优雅的解决图片验证码问题

    说到自动化测试那一定避不开登陆注册页面,而大多数情况下这两个简单的页面都存在一个小困难就是验证码,以前我的解决办法都是在测试环境粗暴的写死一个万能验证码,或者给程序一个10秒钟的线程阻塞,手动输入验证码以跳过这个步骤。这样就可以不那么优雅的实现

    2024年02月14日
    浏览(33)
  • 爽,我终于实现了selenium图片滑块验证码【附代码】

    因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是 用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方,计算要滑动的距离 规划路线,移动

    2024年02月04日
    浏览(24)
  • 爽,我终于实现了selenium图片滑块验证码!【附代码】

    因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是 用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方,计算要滑动的距离 规划路线,移动

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包