PHP实现curl和snoopy类模拟登陆方法

时间:2023-01-16 16:40:33

Snoopy.class.php下载

方法/步骤

  1.  

    第一种:使用snoopy类实现模拟登陆

    1.在网上下载一个Snoopy.class.php的文件

  2.  

    2.代码实现:

    <?php
    
    set_time_limit(0);
    
    require "Snoopy.class.php";
    
    $snoopy=new Snoopy();
    
    $snoopy->referer='你要模拟登陆的域名';//例如:http://www.baidu.com/
    
    $snoopy->agent="定义浏览器根";
    
    $post['username'] ='登陆账号';//根据你要模拟登陆的网站具体的传值 名称来定
    
    $post['password'] ='登陆密码';//根据你要模拟登陆的网站具体的传值 名称来定
    
    $url='你要模拟登陆的域名,数据提交地址';//登陆数据提交的URL地址
    
    $snoopy->submit($url,$post);
    
    $snoopy->fetch("你要模拟登陆的域名");//希望获取的页面数据
    
    echo $snoopy->results;//输出结果,登陆成功
  3.  

    第二种:使用curl函数模拟登陆

    1.代码实现:储存COOKIE

    <?php
    
    set_time_limit(0);
    
    $cookie_file=tempnam('./tmp','cookie');//tmp目录首先创建好,设置COOKIE文件
    
    $curl=curl_init();
    
    $login_url='你要模拟登陆的域名,数据提交地址';
    
    $curlPost="usename=登陆账号&password=登陆密码";//根据你要模拟登陆的网站具体的传值 名称来定
    
    curl_setopt($ch,CURLOPT_URL,$login_url);
    
    //启用时会将头文件的信息作为数据流输出
    
    curl_setopt($curl,CURLOPT_HEADER,0); //设定是否输出页面内容
    
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    
    curl_setopt($curl,CURLOPT_POST,1); //设置请求发送方式,post或get,CURLOPT_POST或CURLOPT_GET
    
    curl_setopt($curl,CURLOPT_POSTFIELDS,$curlPost);
    
    curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //保存cookie
    
    curl_exec($curl);//执行
    
    curl_close($curl);//关闭
  4.  

    //2.实现模拟登陆

    $curl=curl_init();
    
    $login_url2="你要模拟登陆的域名";
    
    curl_setopt($curl,CURLOPT_URL,$login_url2);//提交登陆的url
    
    curl_setopt($curl,CURLOPT_HEADER,0); 
    
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,0);
    
    curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie_file); //读取cookie
    
    curl_exec($curl);//执行
    
    curl_close($curl);//关闭