php模拟post提交微信验证码,总是提交不上去
PHP中文网
PHP中文网 2017-04-11 10:10:05
[PHP讨论组]

我想要采集微信,但是微信采集次数过于频繁的时候会出来验证码,我就找了个打码平台自动打码,但是现在拿到验证码的code以后,再去做提交,总是失败,想请问各路豪杰,这玩意怎么整?

$cont = curl_getbyurl ( $url );//我自己封装的一个curl,其中获得了cookie并存到cookie.txt文件中
    if (strpos ( $cont, '请输入验证码' ) !== false) {
        echo '需要验证码';

        $thistime = microtime ( true );
        $picurl = 'http://mp.weixin.qq.com/mp/verifycode?cert='.$thistime;

        $picname='E:/yanzhengma/yanzhengma'.$thistime.'.jpg';
        $url=file_get_contents($picurl);//获得验证码
        file_put_contents($picname,$url);//把验证码存到一个文件夹里

        //自动打码
        $piccode = autopic($picname);//自己封装的一个验证自动打码
        $piccode = $piccode->Result;//获得验证码的code
        if($piccode){

            $codeurl="http://mp.weixin.qq.com/mp/verifycode";
            $post = "cert=$thistime&input=$piccode";
            $code_curl = curl_init();
            curl_setopt($code_curl, CURLOPT_POST, 1);
            curl_setopt($code_curl, CURLOPT_URL, $codeurl);
            curl_setopt($code_curl, CURLOPT_POSTFIELDS, $post);
               curl_setopt ($code_curl, CURLOPT_COOKIEFILE, $cookie_file); 
               curl_setopt ($code_curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查
               curl_setopt ($code_curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在
               curl_setopt ($code_curl, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT'] ); // 模拟用户使用的浏览器
            $result=curl_exec($code_curl);
            curl_close($code_curl);
            var_dump($result);
            unlink($cookie_file);
        }

        die ();
    }
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
大家讲道理

自己模拟一次验证码提交咯

伊谢尔伦

我猜是cookie问题,你看下cookie是不是这个页面种植的

大家讲道理

问题解决了,正确的说是问题没了,我把ip设为每30秒换一次,他再也不会弹出验证码了……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号