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
1获取指定url内容
<?php
$url = “http://www.youtube.com”;
include(”snoopy.php”);
$snoopy = new Snoopy;
$snoopy->fetch($url); //获取所有内容
echo $snoopy->results; //显示结果
//可选以下
$snoopy->fetchtext //获取文本内容(去掉html代码)
$snoopy->fetchlinks //获取链接
$snoopy->fetchform //获取表单
?>
2 表单提交
<?php
$formvars["username"] = “admin”;
$formvars["pwd"] = “admin”;
$action = “http://www.taoav.com”;//表单提交地址
$snoopy->submit($action,$formvars);//$formvars为提交的数组
echo $snoopy->results; //获取表单提交后的 返回的结果
//可选以下
$snoopy->submittext; //提交后只返回 去除html的 文本
$snoopy->submitlinks;//提交后只返回 链接
?>
3 伪装
<?php
$formvars["username"] = “admin”;
$formvars["pwd"] = “admin”;
$action = “http://www.taoav.com”;
include “snoopy.php”;
$snoopy = new Snoopy;
$snoopy->cookies["PHPSESSID"] = ‘fc106b1918bd522cc863f36890e6fff7′; //伪装sessionid
$snoopy->agent = “(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)”; //伪装浏览器
$snoopy->referer = “http://www.only4.cn”; //伪装来源页地址 http_referer
$snoopy->rawheaders["Pragma"] = “no-cache”; //cache 的http头信息
$snoopy->rawheaders["X_FORWARDED_FOR"] = “127.0.0.101″; //伪装ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;
?>
原来我们可以伪装session 伪装浏览器 ,伪装ip, haha 可以做很多事情了。
例如 带验证码,验证ip 投票, 可以不停的投。
ps:这里伪装ip ,其实是伪装http头, 所以一般的通过 REMOTE_ADDR 获取的ip是伪装不了,
反而那些通过http头来获取ip的(可以防止代理的那种) 就可以自己来制造ip。
关于如何验证码 ,简单说下:
首先用普通的浏览器, 查看页面 , 找到验证码所对应的sessionid,
同时记下sessionid和验证码值,
接下来就用snoopy去伪造 。
原理:由于是同一个sessionid 所以取得的验证码和第一次输入的是一样的。
4 有时我们可能需要伪造更多的东西,snoopy完全为我们想到了
<?php
$snoopy->proxy_host = “www.only4.cn”;
$snoopy->proxy_port = “8080″; //使用代理
$snoopy->maxredirs = 2; //重定向次数
$snoopy->expandlinks = true; //是否补全链接 在采集的时候经常用到
// 例如链接为 /images/taoav.gif 可改为它的全链接 [img]http://www.taoav.com/images/taoav.gif[/img]
$snoopy->maxframes = 5 //允许的最大框架数
//注意抓取框架的时候 $snoopy->results 返回的是一个数组
$snoopy->error //返回报错信息
?>
分享到:
相关推荐
在实际应用中,"Snoopy-1.2.3"可能是这个库的一个特定版本,包含了更新、修复和可能的性能优化。使用这个版本前,开发者通常需要将其解压并按照提供的文档或示例代码进行安装和配置。 总的来说,Snoopy是一个强大的...
在实际应用中,Snoopy-2.0可广泛应用于搜索引擎优化(SEO)、市场调研、社交媒体分析、新闻监控等领域。例如,SEO从业者可以通过Snoopy-2.0抓取网站的关键词、元数据等信息,以便分析并优化网站的搜索引擎排名。在...
此外,示例代码会帮助开发者更好地理解和应用这个库。 在实际使用中,首先需要将Snoopy.class.php文件引入到PHP脚本中,然后创建Snoopy对象,配置相关参数,如URL、请求类型、头部信息等,最后调用相应的请求方法...
在实际应用中,使用Snoopy和cURL时,开发者需要确保服务器端的环境支持cURL扩展,并正确安装Snoopy库。然后,实例化Snoopy对象,设置相关参数,调用其方法发起请求并获取结果。这样,即使不直接操作cURL,也能实现...
它在开发过程中,尤其是数据抓取、网页分析和自动化测试等方面有着广泛的应用。 描述中的“好像还可以作弊呢,呵呵”可能是指Snoopy类库可以用于一些巧妙的数据获取,例如在网站登录验证或访问限制的情况下,通过...
此外,Snoopy类主要适用于简单的网页交互场景,对于更复杂的Web应用,可能需要使用更高级的HTTP客户端库,比如cURL库。文档中提到了对cURL的偏好,可能是因为cURL提供了更强大的功能和更复杂的网络请求处理能力。 ...
这对于数据分析、内容聚合、自动化报告生成等多种应用场景都非常有用。 【标签】"PHP" 表明这个工具是用PHP编程语言编写的,PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,并可嵌入到HTML中。Snoopy的PHP...
理解并掌握Snoopy的使用,不仅可以提升开发效率,还能帮助你构建出更加灵活的网络爬虫应用。但同时,我们也要时刻记住,任何数据采集活动都应建立在合法、合规的基础上,尊重互联网的开放性和公平性。
Snoopy是一个广泛应用于PHP项目的网页抓取工具,它可以帮助开发者轻松地获取网页内容,模拟浏览器发送HTTP请求,并处理登录、表单提交等复杂交互。 【描述】中提到的"强大的PHP采集类"暗示了Snoopy类在数据抓取和...
此类用于下载方面的程序应用,例子如下: function downimage($furl) { $filename=""; $str=explode('/',$furl) ; $filename= $str[count($str)-1] ; $snoopyx = new Snoopy ; $snoopyx->fetch($furl) ; if($...
再次,从标签中,我们可以看到没有任何标签,这说明这份PPT模板是通用的,可以应用于各种场景和主题。 最后,从部分内容中,我们可以看到设计者想要表达的思想是感恩生命中的朋友,并且表达了对朋友的感激和祝福。...
这个类特别适合于开发网页抓取程序或“小偷程序”,即那些需要从网站上自动获取数据的应用。Snoopy不需要PHP的额外扩展支持,即使服务器不支持cURL,它也是个很好的替代方案。 Snoopy的主要特点包括: 1. **抓取...
Snoopy五子棋是一款以经典五子棋为基础,融入了网络通信功能的游戏应用,版本为1.0。这款软件的核心特点是允许玩家进行人机对弈、双人对战以及双人联网对战,极大地丰富了游戏的可玩性和社交性。 在人机对弈模式下...
通过深入理解这些知识点,开发者可以充分利用`snoopy-log-collator-0.4.0`来优化他们的日志管理系统,提高监控和调试的效率,从而更好地服务于云原生环境下的复杂应用。在实际操作中,安装、配置和使用这款工具,都...
《Snoopy五子棋》是一款融合了经典五子棋玩法与现代技术的游戏,它提供了人机对弈、双人对战以及双人联网对战等多种模式,满足玩家不同的游戏需求。这款游戏以其简单的规则和丰富的策略性吸引着各年龄段的玩家。 在...
4. 正则表达式在Snoopy中的应用 Snoopy类本身并没有提供直接获取网页中所有图片地址的功能。为了实现这一功能,需要使用正则表达式来匹配网页中的标签,并从中提取出图片的URL。这个正则表达式会搜索包含标签的字符...
在PHP中,下载远程图片是一项常见的任务,尤其在构建网站或Web应用程序时,可能需要从其他服务器抓取图片资源。本篇文章将详细讲解如何使用PHP实现这个功能,并着重介绍Snoopy.class.php类的使用。 首先,让我们...
Snoopy是一个PHP的网络爬虫类库,它允许开发者模拟浏览器发送HTTP请求并接收HTML响应,从而实现网页内容的抓取。本文将详细讲解如何基于Snoopy来解析...在实际应用中,还应考虑错误处理和异常捕获,确保程序的健壮性。