首页 > php教程 > php手册 > 正文

php snoopy采集类介绍

WBOY
发布: 2016-06-21 08:47:35
原创
793 人浏览过

Snoopy是一个用来模拟浏览器的一些简单功能的php类,可以获取网页内容,发送表单等操作。Snoopy正确运行需要你的服务器的PHP版本在4以上,并且支持PCRE(Perl Compatible Regular Expressions),基本的LAMP服务都支持。由于它本身是php一个类,无需扩支持,因此在服务器不支持curl的时候是最好的选择。

Snoopy的特点:

1、抓取网页的内容 fetch

2、抓取网页的文本内容 (去除HTML标签) fetchtext

3、抓取网页的链接,表单 fetchlinks fetchform

4、支持代理主机

5、支持基本的用户名/密码验证

6、支持设置 user_agent, referer(来路), cookies 和 header content(头文件)

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

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

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

10、支持跟踪HTML框架

11、支持重定向的时候传递cookies

Snoopy类的下载地址:http://sourceforge.net/projects/snoopy/

Snoopy类方法:

fetch($URI)

这是为了抓取网页的内容而使用的方法。$URI参数是被抓取网页的URL地址。抓取的结果被存储在 $this->results 中。如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。

fetchtext($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中的文字内容。

fetchform($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中表单内容(form)。

fetchlinks($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。默认情况下,相对链接将自动补全,转换成完整的URL。

submit($URI,$formvars)

本方法向$URL指定的链接地址发送确认表单。$formvars是一个存储表单参数的数组。

submittext($URI,$formvars)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回登陆后网页中的文字内容。

submitlinks($URI)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。 默认情况下,相对链接将自动补全,转换成完整的URL。

Snoopy类属性: (缺省值在括号里)

$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装 (Snoopy v0.1)
$referer 来路信息,如果有的话
$cookies cookies, 如果有的话
$rawheaders 其他的头信息, 如果有的话
$maxredirs 最大重定向次数, 0=不允许 (5)
$offsiteok whether or not to allow redirects off-site. (true)
$expandlinks 是否将链接都补全为完整地址 (true)
$user 认证用户名, 如果有的话
$pass 认证用户名, 如果有的话
$accept http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$error 哪里报错, 如果有的话
$response_code 从服务器返回的响应代码
$headers 从服务器返回的头信息
$maxlength 最长返回数据长度
$read_timeout 读取操作超时 (requires PHP 4 Beta 4+)
设置为0为没有超时
$timed_out 如果一次读取操作超时了,本属性返回 true (requires PHP 4 Beta 4+)
$maxframes 允许追踪的框架最大数量
$status 抓取的http的状态
$temp_dir 网页服务器能够写入的临时文件目录 (/tmp)
$curl_path cURL binary 的目录, 如果没有cURL binary就设置为 false

Snoopy使用示例:

(1)获取指定url内容

$url='http://www.Alixixi.com';
include('snoopy.php');
$snoopy=new Snoopy;
$snoopy->fetch($url);//获取所有内容 
echo $snoopy->results;//显示结果 
$snoopy->fetchtext //获取文本内容(去掉html代码) 
$snoopy->fetchlinks //获取页面所有链接 
$snoopy->fetchform //获取页面表单信息
登录后复制

(2)提交表单

include 'snoopy.php';
$snoopy=new Snoopy;
$formvars['username']='admin';
$formvars['pwd']='admin';
$action='http://www.Alixixi.com';//表单提交地址 
$snoopy->submit($action,$formvars);//$formvars为提交的数组 
echo $snoopy->results;//获取表单提交后的 返回的结果 
$snoopy->submittext;//提交后只返回去除html的文本 
$snoopy->submitlinks;//提交后只返回链接
登录后复制

(3)使用Snoopy来伪装

$formvars['username']='admin';
$formvars['pwd']='admin';
$action='http://www.Alixixi.com';
include 'snoopy.php';
$snoopy=new Snoopy;
$snoopy->cookies['PHPSESSID']='fc206b1918bd522cc863p36890e6notef7';//伪装sessionid 
$snoopy->agent='(compatible;MSIE 4.01;MSN 2.5;AOL 4.0;Windows 98)';//伪装浏览器 
$snoopy->referer='http://www.Alixixi.com';//伪装来源页地址 http_referer 
$snoopy->rawheaders['Pragma']='no-cache';//cache 的http头信息 
$snoopy->rawheaders['X_FORWARDED_FOR']='127.0.0.1';//伪装ip 
$snoopy->submit($action,$formvars);
echo $snoopy->results;
登录后复制

您可能感兴趣的文章

  • php提示PHP Warning: date(): It is not safe to rely on the......错误的解决办法
  • php 简单计算权重的方法(适合抽奖类的应用)
  • PHP新手用的Insert和Update语句构造类
  • 强大的PHP 图片处理类(水印、透明度、缩放、锐化、旋转、翻转、剪切、反色)
  • php中在变量和函数前加static关键字之后的区别
  • PHP Curl批量多线程打开网址的类
  • php window平台模拟checkdnsrr函数检测email是否真实存在
  • php实现将人民币金额转大写的办法



相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板