selenium实现输入数字字母验证码

这篇具有很好参考价值的文章主要介绍了selenium实现输入数字字母验证码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思路

1. 登录url

2. 获取验证码坐标

3. 根据桌标截图验证码

4. 对验证码进行识别

5. 自动输入验证码文章来源地址https://www.toymoban.com/news/detail-730672.html

测试代码

import os
import time
from io import BytesIO
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
import sys

import ddddocr

import uuid


if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://172.16.12.129/DVWA/login.php")
    #driver.get('https://icpc.ldu.edu.cn/login')
    #driver.get('http://admin.dlszyht.com/login.php')
    #driver.get("https://icpc.ldu.edu.cn/login")
    time.sleep(2)
    # 执行js,对页面进行缩放,100 占 125 的 80%
    # driver.execute_script('document.body.style.zoom="0.8"')
    # 要截图的元素
    #element = driver.find_element_by_css_selector('#captcha')
    #element = driver.find_element("id", "su")
    #element = driver.find_element("id", "captcha").
    #element = driver.find_element("title", "看不清,换一个")
    #element = driver.find_element(By.TAG_NAME, "form")
    element = driver.find_element(By.CSS_SELECTOR, 'img[title="点击图片重新获取验证码"]')
    #element = driver.find_element("id", "vcodesrc")

    # 坐标
    x, y = element.location.values()
    # 宽高
    h, w = element.size.values()
    # x = element.location['x']  # 获取验证最左边位置
    # y = element.location['y']  # 获取验证码上边位置
    # w = x + element.size['width']  # 获取验证码右边位置
    # h = y + element.size['height']  # 获取验证码下边位置
    # 把截图以二进制形式的数据返回
    image_data = driver.get_screenshot_as_png()
    # 以新图片打开返回的数据
    screenshot = Image.open(BytesIO(image_data))

    # 对截图进行裁剪
    result = screenshot.crop((x, y, x + w, y + h))
    # 显示图片
    #result.show()
    pic_captcha_name = "{}{}{}{}".format(os.path.dirname(os.path.realpath(__file__)), "/tmpfile/", uuid.uuid4(), ".png")
    result.save(pic_captcha_name)

    #"""
    ocr = ddddocr.DdddOcr()
    with open(pic_captcha_name, 'rb') as f:
        img_bytes = f.read()
        res = ocr.classification(img_bytes)
        print(res)
    os.remove(pic_captcha_name)
    #"""

到了这里,关于selenium实现输入数字字母验证码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • JS正则表达式只能输入数字跟字母

    ###最近需要些js控制一个输入验证,搞了好多文字,东凑西并终于汇总了。只要控制不给输入中文,空格,特殊字符就是 只能输入数字跟字母了,反过来实现 https://www.jb51.cc/nodejs/993719.html https://www.codenong.com/cs105929828/

    2024年02月12日
    浏览(58)
  • QT QLineEdit 只能输入字母或数字,输入格式约束(正则表达式)

    1.只允许输入整型 ui-lineEdit-setValidator(new QIntValidator(ui-lineEdit)); 1 2.只允许输入数字 ui-lineEdit-setValidator(new QRegExpValidator(QRegExp(\\\"[0-9]+$\\\")));    1 3.只能输入字母和数字 ui-lineEdit-setValidator(new QRegExpValidator(QRegExp(\\\"[a-zA-Z0-9]+$\\\")));    1 3.1 只能输入大写数据: ui-lineEdit-setValidator(new QRegE

    2024年02月04日
    浏览(43)
  • python爬虫 scrapy+selenium+webdriver实现鼠标滑动破解阿里云盾快验证

    在爬取jianshu文章的时候发现,jianshu竟然买了阿里云的盾块验证!!!很是头疼,虽然说没有其他图片匹配的那么麻烦,但是阿里云的人机验证和算法真的是顶尖的,查阅了多个资料最后没办法,才实现用webdriver模拟鼠标去通过验证 首先我们需要安装webdriver驱动和Google Chrom

    2024年02月03日
    浏览(65)
  • uniapp input框校验数据格式,只能输入汉字/数字/字母等

    input框常用的正则表达式 input class=“uni-input iptStyle” name=“input” placeholder=“未识别出信息” v-model=“form.fpNum” @input=“fpNumInput” maxlength=‘24’ / fpNumInput(e) { const o = e.target; const inputRule = / (0+)|[ d]+/g //修改inputRule 的值 this.$nextTick(function() { this.form.fpNum = o.value.replace(inputRule

    2024年02月03日
    浏览(47)
  • 前端-element输入框-input的一些限制(只能输入正整数和0,或者只能输入数字不可以汉字字母)

    1、input输入框只能输入正整数和0 那你就用  οnkeyup=\\\"value=(value.replace(/D/g,\\\'\\\')==\\\'\\\'?\\\'\\\':parseInt(value))\\\" 2、如果是正数负数0,包括小数都可以 那就用这个οnkeyup=\\\"value=value.replace(/[^-?d.]/g,\\\'\\\')\\\",不能输入汉字和字母 3、不能输入中文,可以输入正数、负数、小数和字母  οnkeyup=\\\"value=v

    2024年02月13日
    浏览(48)
  • 用element UI 写一个密码表单验证必须为大小写字母+数字+@#$等特殊符号

    你好!这是一个示例代码,用于在 Element UI 中使用密码表单验证必须为大小写字母、数字和 @ 符号。 在这个示例代码中,我们使用了 Element UI 的 el-form 、 el-form-item 和 el-input 组件。 el-form 组件用于包装表单元素, el-form-item 组件用于包装单个表单项, el-input 组件用于创建单行

    2024年02月06日
    浏览(72)
  • python编程实战(二):一文教你生成随机验证码!大小写字母与数字组合,位数可以控制

    验证码验证,是常见的安全验证的一种方式,可以用来杜绝脚本和机器人操作等等; 除了本文介绍的简单的验证码之外,还有拼图验证、文字顺序验证等常见的验证方式 毕竟一位就是 26 + 26 +10 = 62种 4位验证码那就有 62 * 62 * 62 * 62 = 14776336 种组合! 6位就更不用说了~ 生活中我

    2023年04月11日
    浏览(82)
  • 爬虫日常-selenium登录12306,绕过验证

    hello兄弟们,这里是无聊的网友。愉快的周末过去了,欢迎回到学习频道。书接上文,我们说到了再用selenium登录12306时遇到了滑块验证的问题。当前的网站几乎每家都会在登录模块添加一个认证,来规避各种爬虫,而我们则不断的去想办法绕过这些验证模块。目前一些简单的

    2024年02月07日
    浏览(62)
  • 15.网络爬虫—selenium验证码破解

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星认证 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。 🧾 🧾第八篇文章《8.网

    2023年04月16日
    浏览(108)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包