curl模拟用户登录获取数据

Author Avatar
yyq 2020-06-12 16:57:42
  • 二维码

curl模拟用户登录获取数据

        curl功能强大,长用与爬取某个链接的内容,简单易用,记录下模拟用户登录的相关操作。

    

        NO1:找个功能简单的登录后台测试,淘宝啥的就算了


        NO2:使用账号,密码登录,F12进入浏览器调试模式,找到你要使用到的数据,主要是用户名,密码字段,有些可能还要传其它参数,自己看


        NO3:将需要传入的字段组合为数组参数,设置下curl显示获取内容头部,用于获取登录所用cookie;


        NO4:POST数据请求登录地址,在头部获取登录后的cookie,cookie的获取可以存入文本,我这里简单截取出来直接使用即可


        NO5:成功获取cookie值后,curl其它页面时带入即可获取到相关内容


        NO6:给点代码如下


    //实现用户的伪登录
   if (!function_exists('login')) {
   function login($url, $post)
   {
       $curl = curl_init();
       curl_setopt($curl, CURLOPT_URL, $url);
       curl_setopt($curl, CURLOPT_HEADER, 1);//是否显示头信息
       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息
       curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
       curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

       $s = curl_exec($curl);
       curl_close($curl);
       return $s;
   }
   }


        注意头部的设置可以参考浏览器内的数据,可能不设置也能拿到数据,看登录的站点是否有需求

    //传入cookie获取数据
   if (!function_exists('ckcurl_request')) {
   function ckcurl_request($cook, $url, $data = null)
   {
       //第一步:创建curl
       $ch = curl_init();
       $headers = array();
       $headers[] = 'Content-type: application/x-www-form-urlencoded';
       $headers[] = 'User-Agent: Fiddler';
       curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

       curl_setopt($ch, CURLOPT_COOKIE, $cook);
       //第二步:设置curl
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //禁止服务器端校检SSL证书
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//数据的请求
       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
       //判断$data数据是否为空
       if (!empty($data)) {
           //模拟发送POST请求
           curl_setopt($ch, CURLOPT_POST, 1);
           curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
       }
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //以文档流的形式返回数据
       //第三步:执行curl
       $output = curl_exec($ch);
       //第四步:关闭curl
       curl_close($ch);
       //把$output当做返回值返回
       return $output;
       }
   }

        

        COOKIE数据的截取自行处理,一般是在头部以‘Set-Cookie: ’开头,取后面一段值即可,END!!!

上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语