使用OCR来帮助LR实现认证码识别

原理:用一个请求去刷新认证码返回页面,然后通过关联将返回的图片保存为硬盘的一个文件,然后用ocr去识别这个文件内容,保存结果到txt,最后用LR读这个文本就可以得到认证码。当然很多时候识别不出来所以你要判断一下得出的结果是不是4位字符或数字,如果不是继续刷新,从请求角度来说应该效率很理想了。

 1 Action()
 2 {
 3     int flen;        //定义一个整型变量保存获得文件的大小
 4     long filedes;    //保存文件句柄
 5     char file[256]="c:\\test1.jpg";  //保存文件路径及文件名
 6          char result[4];
 7 
 8     web_set_max_html_param_len("2000000");//设置页面接收最大的字节数,该设置应大于下载文件的大小
 9 
10          web_reg_save_param("pic",
11                    "LB=",
12                    "RB=",
13                    "Ord=1",
14                    "Search=Body",
15                    LAST);
16 
17          web_url("randpiccloud","URL=http://comment8.mydrivers.com/radompage.aspx?0.{rnum}",LAST);
18 
19     
20     flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得文件大小
21     if(flen > 0)
22     {
23         if((filedes = fopen(file, "wb")) == NULL)
24         {
25             lr_output_message("oh cloud your Open File Failed!");
26             return -1;
27         }
28         fwrite( lr_eval_string("{pic}"),flen,1,filedes );
29         fclose( filedes );
30     }
31 
32          system("c:\test.bat");
33 
34          if((filedes = fopen("c:\\test.txt", "rt")) == NULL)
35         {
36             lr_output_message("oh,cloud your Open File Failed!");
37             return -1;
38         }
39         fread( result,4,1,filedes);
40         fclose( filedes );
41 
42          lr_output_message(result);
43 
44          return 0;
45 }

注:参数Num是一个随机数,目的是为了告诉js现在这个变了请刷新,所以是一个类似于时间戳的东西!

by 云层

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏debugeeker的专栏

《coredump问题原理探究》windows版8.6节堆布局heap corruption第一个例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

1162
来自专栏日常分享

RabbitMQ基本模式

   最近用到了一些RabbitMQ的东西,看了官方的Get Started,以此为模板总结一下。

3142
来自专栏用户2442861的专栏

修改npm全局安装模式的路径

刚学nodeJS不久,很纳闷为什么全局安装的模块在 'node安装目录/node_modules‘ 中没找到!后来仔细看了下安装成功后的信息,才发现原来是自动安...

1002
来自专栏C/C++基础

Linux命令(39)——du命令

(1)文件大小与占用磁盘空间大小的区别。 文件大小(又名 apparent size)是文件自身实际大小,与占用磁盘空间大小(又名 occupied spa...

1181
来自专栏Python、Flask、Django

python中用requests获取API参数

2206
来自专栏ppjun专栏

Android十八章:Dalvik和Art区别

前言,安卓可以运行多个app,对应运行了多个dalvik实例,每一个应用都有一个独立的linux进程,独立的进程可以防止虚拟机崩溃造成所有程序都关闭。就像一条电...

1823
来自专栏PHP实战技术

Linux下自动化监控内存、存储空间!

距离上一次更新文章已经过去一段时间了,小编在这段时间因为一些琐事,加上身体生病不能及时更新文章,今天身体逐渐恢复就急忙来更新文章,今天思梦给大家...

3516
来自专栏安恒网络空间安全讲武堂

CVE-2011-0104分析

关于office的漏洞。先把进程attach上去然后打开exploit的文件。查看程序崩溃在这里:

1483
来自专栏编程

Nutch重要命令使用说明

之前几篇博文对nucth抓取周期的几个命令做了说明,本篇博文将对nutch抓取周期以外的几个重要的命令的使用进行详细的说明。 1. mergesegs 合并多个...

2055
来自专栏Java技术栈

分布式作业 Elastic-Job 快速上手指南,从理论到实战一文搞定!

2482

扫码关注云+社区

领取腾讯云代金券