标签:web return 认证码 文件 filedes lr flen LR OCR
原理:用一个请求去刷新认证码返回页面,然后通过关联将返回的图片保存为硬盘的一个文件,然后用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 云层
标签:web,return,认证码,文件,filedes,lr,flen,LR,OCR 来源: https://blog.51cto.com/u_13771903/2725208
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。