curl 模拟用户登陆,但有验证码

我在用curl做一个用户模拟登陆,但是遇到了验证码。我在网上找了很多资料,但都没有解决问题。我想,要模拟登录的思路大概是这样子的:
1、获取页面中的表单,模拟填写登录名和密码;
2、从验证码图片中得到验证码,模拟填写验证码;(这一步获取验证码解决不了)
3、提交cookie和参数进行登录,保存本地cookie;
其中第2步遇到了问题,怎么会的验证码?使用图片识别库吗?还是下载让用户手工输入呢?或者还有其他的办法?
希望做过这类需求的朋友帮帮忙,谢谢~
眼眸繁星
浏览 393回答 2
2回答

神不在的星期二

火速解答手工输入花钱买在线的api在线打码ocr(不准确,简单的验证码可以,但总体上指望不大)你可以去www.uuwise.com这样的网站,去了解一下验证码打码的黑技术

桃花长相依

如果手工打码,用PHP带Cookie取到验证码的值,再设Header("Content-Type:image/jpeg");吐出来,这里你可以自己结合前端做些小的改善,例如用AjaxLongPoll或webSocket做个实时提醒的小东西,一旦产生新验证码,你的客户端叮咚提示你打验证码,打完,把内容传给CURL类,CURL再模拟你把验证码传给网站。在PHP中这里有个很强悍的模拟库,叫做snoopy.class.php。如果验证码比较简单(无扭曲、无干扰线、非中文、字符长度是定长、每个验证码字符边界距离等同、噪点小、字体不生僻或你能找到),也就是说,你觉得机器可以根据一定模式识别出来,那么自己用PHP写个OCR,或调用扩展,我不知道有没有OCR扩展你自己找找。自己写也简单,我记得是先把图片二值化,再把每个字母的区域拆分,计算黑色所占比例,和已有字体库对比,网上类似教程太多,自己实践。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript