一次成功的snoopy模拟登录体验

本文通过Snoopy PHP库与Curl详细展示了模拟网站登陆的过程,包括获取并解析登录表单、设置Cookie及重定向,适用于爬虫初学者理解网站交互原理。

snoopy 官网

snoopy是基于PHP的一个爬取网站数据类,使用方便 。以下是从底层理解写的一个模拟登陆案例:

	$URL = 'http://www.****.cn/login.html';   // 登陆链接
    $snoopy = new Snoopy;
    $snoopy->fetchform( $URL );    // 获取登陆页面的表单,并且headers返回了模拟登陆所需要的cookie
    $preg = '/name=\"(.*?)\".*?value=\"(.*?)\"/';
    preg_match_all($preg,$snoopy->results , $res );
    $formvars=[];
    foreach ($res[1] as $key => $val ){
        $formvars[$val] = $res[2][$key];
    }     // 把登陆所需要的参数提取出来(laravel可能有_token令牌)

   $formvars['email'] = '123@qq.com';
   $formvars['password'] = '456';   // 加入账号密码
        
   $snoopy->_redirectaddr = "http://www.****.cn"; //重定向地址,不清楚有什么用;但是底
        	层这个值必须为true才会调用setcookies()函数,把headers的set-cookie值写入到cookies里面
   $snoopy->submit('http://www.****.cn/member/check',$formvars);//$formvars为提交的数组
   $snoopy->fetchlinks("http://www.****.cn/center/profile");  // 需要获取数据的页面
   dump($snoopy);exit;
        

jq22网站模拟登陆

	// 登陆获取到cookie
	$curl = curl_init();
    $cookie_jar = tempnam( '/tmp','cookie');   // 保存cookie的目录,频繁执行脚本系统会累积很多
    curl_setopt($curl, CURLOPT_URL,'http://www.jq22.com/emdl.aspx?em=用户&pw=密码');//登录的jq22
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);// 把返回来的cookie信息保存在$cookie_jar文件中
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设定返回 的数据是否自动显示
    curl_setopt($curl, CURLOPT_HEADER, false);//设定是否显示头信 息
    curl_setopt($curl, CURLOPT_NOBODY, false);//设定是否输出页面 内容
    curl_exec($curl);//返回结果
    curl_close($curl); //关闭

   // 获取到cookie后,去爬取需要的页面
   $curl2 = curl_init();
   curl_setopt($curl2, CURLOPT_URL, 'http://www.jq22.com/myhome');//登陆后要从哪个页面获取信息
   curl_setopt($curl2, CURLOPT_HEADER, false);
   curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl2, CURLOPT_COOKIEFILE, $cookie_jar);
   $content = curl_exec($curl2); 
	
	// 打印页面
   dump($content);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值