zz通过snoopy模拟登陆其他有验证码的网站

通过snoopy模拟登陆其他有验证码的网站 

http://blog.163.com/pjt_ren/blog/static/18825060201062564151583/

2010-07-25 18:41:51|  分类: Php |  标签: |字号 订阅

实现需求:
通过snoopy获得A站sessionid和验证码图片,在自己的网站上显示登陆表单,提交后,snoopy提交输入信息到A站实现登陆,并获取里面的资料作分析。

		通过snoopy模拟登陆其他有验证码的网站 - 拾叁 - 拾叁小记

验证码和sessionid的获取:
//获取图片
   $snoopy->fetch('http://www.a.com/imgcode.gif');
//从header信息里面分析出sessionid
   preg_match('/JSESSIONID=([\w]+);/', $snoopy->headers[2],$sessionid);
$jsessionid=$sessionid[1];
$imgcode=base64_encode($snoopy->results);
//显示登陆表单
?>
<form action="" method="post">
<table>
   <tr>
    <th>用户名</th>
    <td><input name="username"></td>
   </tr>
   <tr>
    <th>密码</th>
    <td><input name="password"></td>
   </tr>
   <tr>
    <th>验证码</th>
    <td><input name="loginValidateCode">
    <img alt="" src="data:image/gif;base64,<?php echo $imgcode?>">
    </td>
   </tr>
   <tr>
    <td><input type="submit"></td>
   </tr>
</table>
<input type="hidden" name="jsessionid" value="<?php echo $jsessionid?>">
</form>

提交表单信息到A站并显示登陆后页面:

    $snoopy->cookies['JSESSIONID']=post('jsessionid');
    $snoopy->submit('http://www.a.com/signin.html',$_POST);
    echo $snoopy->results;

小技巧总结:
可以对获取的图片二进制码通过base64编码直接用在img的src属性
    <img alt="" src="data:image/gif;base64,<?php echo $base64code?>">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值