php中使用tesseract识别验证码,并且模拟登录,验证码错误
代码如下:
header("Content-type:text/html;charset=utf-8");
/**
* 模拟登录
*/
//1.初始化变量
$cookie_file = tempnam('./temp','cookie');
$login_url = "http://210.32.33.91:8080/reader/redr_verify.php";//登录页面
$verify_code_url = "http://210.32.33.91:8080/reader/captcha.php";//验证码页面
//2.获取cookies
echo "正在获取COOKIE...
";
$curl = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
$contents = curl_exec($curl);
curl_close($curl);
//3.取出验证码
echo "COOKIE获取完成,正在取验证码...
";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);//保存cookie
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);//使用cookie
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);
$codename = time();
$fp = fopen("/home/wwwroot/default/tesseract/Test/images/$codename.png","w");
echo "";
fwrite($fp,$img);
fclose($fp);
//开始识别验证码
echo "验证码取出完成,正在休眠,正在识别验证码...
";
passthru("/usr/bin/tesseract /home/wwwroot/default/tesseract/Test/images/$codename.png /home/wwwroot/default/tesseract/Test/images/$codename");
$code = file_get_contents("./images/$codename.txt");
echo "验证码成功取出:$code
";
echo "正在准备模拟登录...
";
$post_url = "http://210.32.33.91:8080/reader/redr_verify.php";
//为安全性,此处密码不提供。
$post = "number=1111111&passwd=111111&captcha=$code&select=cert_no&returnUrl=";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $post_url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);
echo str_replace('captcha.php','http://210.32.33.91:8080/reader/captcha.php',$result);
相关阅读:
less的命令行编译如何编译整个目录
为什么我写的 Node.js C++ Addons 善后这么卡?
字和字节的相关疑惑
为什么目前都倾向于使用runtime将json转换成model,而不直接使用工具生成代码的方式?
jQuery选择器问题
C#,请问如何将word转化为HTML,不适用office组件?
django mock http response
vim 中如何替换选中行或指定几行内的文本
Linux下安装了memcache扩展,但是连接失败
web前端关于拿到设计稿的尺寸问题?
div中的div无法控制高度?我想控制右边几个蓝色div的高度
使用vuex时,如何更好的封装一些通用的交互效果?
如何在多台机器上部署同样自己编译的php7?
关于单链表输出的点的问题
请问我用KVC访问textfield的placeholder颜色的属性,会被拒吗?
大家在那些场景用nodeJS
求教一个设计图css的写法
hexo yilia配置头像不显示
酒店房间wifi独立ssid
请问这样的页面是如何布局的?感觉很不好做啊