selenium 对验证码处理

selenium -验证码处理
1.WEB网站为了防止客户机恶意***,加入验证码功能

2.selenium处理验证码时常用的方法是通过cooike,对于一般网站验证码识别难度不大,可以使用第三方平台验证码接口,以去哪儿网为例,验证码为图片,我们只要把图片保存下来

调用第三方平台。

http://wiki.ruokuai.com/ 下载java接口文档,直接调用以下接口

public static String createByPost(String username, String password,
            String typeid, String timeout, String softid, String softkey,
            String filePath) {
        String result = "";
        String param = String.format(
                "username=%s&password=%s&typeid=%s&timeout=%s&softid=%s&softkey=%s",
                username, password, typeid, timeout, softid, softkey);
        try {
            File f = new File(filePath);
            if (null != f) {
                int size = (int) f.length();
                byte[] data = new byte[size];
                FileInputStream fis = new FileInputStream(f);
                fis.read(data, 0, size);
                if(null != fis) fis.close();

                if (data.length > 0)
                    result = RuoKuai.httpPostImage("http://api.ruokuai.com/create.txt", param, data);
            }
        } catch(Exception e) {
            result = "未知问题";
        }

        return result;
    }

例:

先对验证码进行截图,保存到项目路径下

获取ER7C便是验证码

原文地址:http://blog.51cto.com/11959730/2309556

时间: 2024-11-13 09:42:05

selenium 对验证码处理的相关文章

【selenium自动化——验证码问题】

处理验证码的几种方法: 去掉验证码这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险. 设置万能码去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个"后门"---设置一个"万能验证码",只要用户输入这个"万能验证码",程序就认为验证通过,否则按照原先的验证方式进行验

selenium截取验证码图片

# 截取验证码图片 from PIL import Image driver.save_screenshot('bdbutton.png') element = driver.find_element_by_xpath('//*[@id="nc_1_clickCaptcha"]/div[2]/img') #找到验证码图片 print(element.location) # 打印元素坐标 print(element.size) # 打印元素大小 left = element.locati

Python+selenium自动识别验证码

使用PIL+pytesseract+tesseract-ocr python版本:3.6.3 tesseract-OCR  版本:3.02.02 ①安装Pillow cmd切换至pip:pip install Pillow ②安装pytesseract pip install pytesseract ③手动下载tesseract-OCR.exe  安装 ④执行代码 补充: 第②步之后,进入"python\Lib\site-packages\pytesseract"目录,修改pytess

selenium -验证码处理

1.的WEB站有时会碰到客户机恶意攻击,加入验证码功能 2.selenium处理验证码时常用的方法是通过cooike,对于一般网站验证码识别难度不大,可以使用第三方平台验证码接口,以去哪儿网为例,验证码为图片,我们只要把图片保存下来 调用第三方平台.

如何利用python+Selenium对登录的验证码进行验证?

python+Selenium自动识别验证码Fg.save_screenshot('D:\HuaYu\image\image.png')ce = Fg.find_element_by_id("ensure") # 具体的id要用F12自行查看print(ce.location)im = Image.open('D:\HuaYu\image\image.png') 根据图片调整位置img = im.crop((860,507,945,532))print(img)img.save('D:

爬虫的selenium 框架

selenium 与 Httpsession 中的 s.html.render 特别相似 关键是在于他更加的具体,可以支持多种浏览器,并且包括截图等功能 需要下载 解决方案:https://www.cnblogs.com/zhaijiahui/p/8954304.html下载连接 https://chromedriver.storage.googleapis.com/index.html from selenium import webdriver import time d1=webdrive

selenium WebDriver 截取网站的验证码

在做爬虫项目的时候,有时候会遇到验证码的问题,由于某些网站的验证码是动态生成的,即使是同一个链接,在不同的时间访问可能产生不同的验证码, 一 刚开始的思路就是打开这个验证码的链接,然后通过java代码get请求保存验证码图片到本地,然后用打码工具解析验证码,将验证码自动输入验证框就 可以把验证码的问题解决了,但是问题来,每次的请求同一个地址,产生的验证码图片是不一样的,所以这种方法行不通.所以只能将图片先用selenium  WebDriver 截取到本地,然后用打码工具解析ok ,自动填写验证

selenium自动化登录验证码

实际是把验证码忽略掉了; 这个例子没有验证号码,试想下如果有验证码,第一次执行时,验证码从命令行读入输入(当然这个过程靠人), 然后把登陆后的cookie序列化; 以后登陆时从序列化的cookie文件读入; #! /usr/bin/python # coding=utf-8 from selenium import webdriver import time driver=webdriver.Chrome() driver.get('http://mail.163.com/') #163邮箱登陆

selenium高效刷新图验证码

使用场景:项目中用selenium驱动chrome在网页中登录,但是登录有图形验证码,想刷新验证码时,模拟点击图片刷新,但是由于点击后图片是异步加载,所以无法得知新图片什么时候加载完成,就用wait等待3s后,再截返回图验证码图片.但是这样刷新验证码很慢,体验不好. 解决思路:打开一个新标签页,然后get请求图片验证码url.再截返回图验证码图片.由于get是阻塞的,所以不用判断图片加载状态问题. 编码设置: /** * 刷新图形验证码,通过在新标签get方式(同步)获取图形验证码,达到实时响应