snoopy.class.php php模拟登陆

官方网站 http://snoopy.sourceforge.net/

下面是它的一些特征:

1、方便抓取网页的内容

2、方便抓取网页的文字(去掉HTML代码)

3、方便抓取网页的链接

4、支持代理主机

5、支持基本的用户/密码认证模式

6、支持自定义用户agent,referer,cookies和header内容

7、支持浏览器转向,并能控制转向深度

8、能把网页中的链接扩展成高质量的url(默认)

9、方便提交数据并且获取返回值

10、支持跟踪HTML框架(v0.92增加)

11、支持再转向的时候传递cookies

下面是简单的例子:

---------------------------------

一、抓取我的blog的文字

---------------------------------

<?

include "Snoopy.class.php";

$snoopy = new Snoopy;

$snoopy->fetchtext(http://xuejiehome.com);

echo $snoopy->results;

?>

^_^,不错吧

----------------------------------

二、抓取链接

----------------------------------

<?

include "Snoopy.class.php";

$snoopy = new Snoopy;

$snoopy->fetchlinks(http://www.hfpph.com);

print_r($snoopy->results);

?>

----------------------------------

三、模拟登录我的博客

----------------------------------

<?php

include_once 'Snoopy.class.php';
    $snoopy=new Snoopy();
    $snoopy->fetch('http://xuejiehome.com/blog/getcode.asp');
    preg_match('/JSESSIONID=([w]+);/', $snoopy->headers[2],$sessionid);
    $jsessionid=$sessionid[1];
    $imgcode=base64_encode($snoopy->results);
    ?>
    <form action="?act=sub" method="post">
    <table>
      <tr>
          <th>用户名</th>
          <td><input name="user"></td>
      </tr>
      <tr>
          <th>密码</th>
          <td><input name="pass"></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>
    <?php 
    if($_GET['act']=='sub'){
        $snoopy->cookies['JSESSIONID']=$_POST['jsessionid'];
        $snoopy->submit('http://xuejiehome.com/blloginok.html',$_POST);
        echo $snoopy->results;
     }
    ?>

 


 

by 雪洁 2011-08-29 18:01:17 6631 views
我来说几句

相关文章