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

上一篇:未定义梨模块类


下一篇:leetcode 字符串的排列