使用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:	est.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 云层

优质内容筛选与推荐>>
1、1.10字符串格式化打印
2、eclipse与idea快捷键对比以及idea debug、git快捷键
3、闭包 跨域~~
4、千里之行,始于足下
5、扩展欧几里得


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号