51Testing软件测试论坛

标题: 使用OCR来帮助LR实现认证码识别~遇到问题啦~求高手解答 [打印本页]

作者: yangshuxin1989    时间: 2012-10-11 16:12
标题: 使用OCR来帮助LR实现认证码识别~遇到问题啦~求高手解答
本帖最后由 yangshuxin1989 于 2012-10-11 16:30 编辑

这几天在根据云老师的这篇文章在做验证码识别~然后想实践到自己工作的登录项目中,但是遇到一点问题呀~请各位高手指教一下。那个验证码是一个链接,我怎么知道每次请求的是什么呀~我直接把云层老师的代码插入到我的脚本中(当然,验证码的链接已经修改了),但是还是返回一个1006码,提示验证码错误。
  1. Action()
  2. {
  3.         int flen;        //定义一个整型变量保存获得文件的大小
  4.     long filedes;    //保存文件句柄
  5.     char file[256]="c:\\test1.jpg";  //保存文件路径及文件名
  6.     char result[4];
  7.         char res[4];

  8.         web_url("www.efunfun.com",
  9.                 "URL=http://www.efunfun.com/",
  10.                 "TargetFrame=",
  11.                 "Resource=0",
  12.                 "RecContentType=text/html",
  13.                 "Referer=",
  14.                 "Snapshot=t1.inf",
  15.                 "Mode=HTML",
  16.                 LAST);

  17.         web_url("login.do",
  18.                 "URL=http://login.efunfun.com/login.do?method=js_isLogin&callback=rq.bd%5B1%5D=&ck=20121011161946664&rdm=0.4956840199491224",
  19.                 "TargetFrame=",
  20.                 "Resource=0",
  21.                 "RecContentType=text/html",
  22.                 "Referer=http://www.efunfun.com/",
  23.                 "Snapshot=t2.inf",
  24.                 "Mode=HTML",
  25.                 LAST);

  26.         web_url("login.do_2",
  27.                 "URL=http://login.efunfun.com/login.do?method=js_getUser&callback=rq.bd%5B2%5D=&ck=20121011161946664&rdm=0.22612070868305833",
  28.                 "TargetFrame=",
  29.                 "Resource=0",
  30.                 "RecContentType=text/html",
  31.                 "Referer=http://www.efunfun.com/",
  32.                 "Snapshot=t3.inf",
  33.                 "Mode=HTML",
  34.                 LAST);
  35.         lr_think_time(6);

  36.         web_set_max_html_param_len("2000000");//设置页面接收最大的字节数,该设置应大于下载文件的大小

  37.          web_reg_save_param("pic",
  38.                            "LB=",
  39.                            "RB=",
  40.                            "Ord=1",
  41.                            "Search=Body",
  42.                            LAST);

  43.           web_url("randpiccloud","URL=http://login.efunfun.com/verify_ck.jsp?ck={num1}&ram={num}",LAST);

  44.    
  45.     flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得文件大小
  46.     if(flen > 0)
  47.     {
  48.         if((filedes = fopen(file, "wb")) == NULL)
  49.         {
  50.             lr_output_message("oh cloud your Open File Failed!");
  51.             return -1;
  52.         }
  53.         fwrite( lr_eval_string("{pic}"),flen,1,filedes );
  54.         fclose( filedes );
  55.     }


  56.         system("c:\\test.bat");;

  57.          

  58.          if((filedes = fopen("c:\\test.txt", "rt")) == NULL)
  59.         {
  60.             lr_output_message("oh,cloud your Open File Failed!");
  61.             return -1;
  62.         }
  63.         fread( result,4,1,filedes);
  64.         fclose( filedes );

  65.          lr_output_message(result);

  66.                  lr_save_var(result,4,0,"res");

  67.                  //lr_output_message(res);


  68.           lr_output_message(lr_eval_string("{res}"));

  69.                   lr_save_string(res,"a");

  70.         web_url("login.do_3",
  71.                 "URL=http://login.efunfun.com/login.do?method=js_login&u=shuxin@qq.com&p=1qaz2wsx&c={a}&callback=rq.bd%5B4%5D=&ck=20121011161946664&rdm=0.2209274314358045",
  72.                 "TargetFrame=",
  73.                 "Resource=0",
  74.                 "RecContentType=text/html",
  75.                 "Referer=http://www.efunfun.com/",
  76.                 "Snapshot=t4.inf",
  77.                 "Mode=HTML",
  78.                 LAST);

  79.         web_url("www.efunfun.com_2",
  80.                 "URL=http://www.efunfun.com/?",
  81.                 "TargetFrame=",
  82.                 "Resource=0",
  83.                 "RecContentType=text/html",
  84.                 "Referer=",
  85.                 "Snapshot=t5.inf",
  86.                 "Mode=HTML",
  87.                 LAST);

  88.         web_url("login.do_4",
  89.                 "URL=http://login.efunfun.com/login.do?method=js_isLogin&SessionID=638ec38ee80c524d789c103a3b29984f&userid=-1&callback=rq.bd%5B1%5D=&ck=20121011162003623&rdm=0.08463324298331681",
  90.                 "TargetFrame=",
  91.                 "Resource=0",
  92.                 "RecContentType=text/html",
  93.                 "Referer=http://www.efunfun.com/?",
  94.                 "Snapshot=t6.inf",
  95.                 "Mode=HTML",
  96.                 LAST);

  97.         web_url("login.do_5",
  98.                 "URL=http://login.efunfun.com/login.do?method=js_getUser&SessionID=638ec38ee80c524d789c103a3b29984f&userid=-1&callback=rq.bd%5B2%5D=&ck=20121011162003623&rdm=0.1782930045923139",
  99.                 "TargetFrame=",
  100.                 "Resource=0",
  101.                 "RecContentType=text/html",
  102.                 "Referer=http://www.efunfun.com/?",
  103.                 "Snapshot=t7.inf",
  104.                 "Mode=HTML",
  105.                 LAST);

  106.         return 0;
  107. }
复制代码

作者: yangshuxin1989    时间: 2012-10-11 16:59
求云层老师解答呀~
作者: 云层    时间: 2012-10-11 18:11
哎。本来就说过这种识别很难准的。。
作者: yangshuxin1989    时间: 2012-10-11 19:26
回复 3# 云层


    云老師,我也買了你的書,準備看了~
  對於上面那個問題,要怎麼處理呀~老師
作者: marsmaya    时间: 2012-10-16 14:31
我也试着做了下,但是c盘只有test1.jpg,图像打开是空白的

system("c:\\test.bat");;  这句是什么意思呢?
作者: yangshuxin1989    时间: 2012-10-19 11:53
回复 5# marsmaya


    這句是批处理文件文件,你在C盤的地方新建一個txt文檔,然後輸入“tesseract.exe c:\test1.jpg c:\test -1”,另存為test.bat就可以了。
作者: yangshuxin1989    时间: 2012-10-19 11:56
回复 5# marsmaya


    前提是你要裝了tesseract.exe




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2