php模拟post提交微信验证码,总是提交不上去

我想要采集微信,但是微信采集次数过于频繁的时候会出来验证码,我就找了个打码平台自动打码,但是现在拿到验证码的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 ();
    }
阅读 3.5k
3 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题