zoukankan      html  css  js  c++  java
  • PHP使用CURL实现对带有验证码的网站进行模拟登录的方法


    /**
     * 模拟登录
     
    */
      
    //初始化变量
    $cookie_file = "tmp.cookie";
    $login_url = "http://xxx.com/logon.php";
    $verify_code_url = "http://xxx.com/verifyCode.php";
      
    echo "正在获取COOKIE... ";
    $curlj = 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);
      
    echo "COOKIE获取完成,正在取验证码... ";
    //取出验证码
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $verify_code_url);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $img = curl_exec($curl);
    curl_close($curl);
      
    $fp = fopen("verifyCode.jpg","w");
    fwrite($fp,$img);
    fclose($fp);
    echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存 ";
    //停止运行20秒
    sleep(20);
      
    echo "休眠完成,开始取验证码... ";
    $code = file_get_contents("code.txt");
    echo "验证码成功取出:$code ";
    echo "正在准备模拟登录... ";
      
    $post = "username=maben&pwd=hahahaha&verifycode=$code";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
    $result=curl_exec($curl);
    curl_close($curl);
      
    //这一块根据自己抓包获取到的网站上的数据来做判断
    if(substr_count($result,"登录成功")){
     echo "登录成功 ";
    }else{
     echo "登录失败 ";
     exit;
    }
  • 相关阅读:
    React 生命周期
    css 多行文本以...代替
    微信JSSDK配置文件说明
    zepto阻止事件冒泡
    PHP 图片处理PNG颜色丢失
    React 学习笔记(一)
    webpack webpack-dev-server使用指南
    为什么需要使用模块打包工具?
    如何实现微信公户绑定公众号业务
    iOS 手势
  • 原文地址:https://www.cnblogs.com/qhorse/p/4630623.html
Copyright © 2011-2022 走看看