还没下载到Snoopy.class.php,还没实测 20241004
php开源采集类Snoopy.class.php功能使用介绍与下载地址_snoopy.class.php下载-CSDN博客
Snoopy是什么?
Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
Snoopy的一些特点:
* 方便抓取网页的内容* 方便抓取网页的文本内容 (去除HTML标签)* 方便抓取网页的链接* 支持代理主机* 支持基本的用户名/密码验证* 支持设置 user_agent, referer(来路), cookies 和 header content(头文件)* 支持浏览器转向,并能控制转向深度* 能把网页中的链接扩展成高质量的url(默认)* 方便提交数据并且获取返回值* 支持跟踪HTML框架(v0.92增加)* 支持再转向的时候传递cookies (v0.92增加)* 支持再转向的时候传递cookies
要求:
Snoopy requires PHP with PCRE (Perl Compatible Regular Expressions),which should be PHP 3.0.9 and up. For read timeout support, it requiresPHP 4 Beta 4 or later. Snoopy was developed and tested with PHP 3.0.12.
类方法:
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。
类属性: (缺省值在括号里)
$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
1. 采集页面内容
01 |
include(include/snoopy.class.php);
|
05 |
$snoopy-> fetchtext($snoopy->host); //获取所有文本内容(去掉html代码)
|
07 |
$snoopy->fetch($snoopy->host); //获取页面所有链接 |
08 |
$snoopy->fetchlinks($snoopy->host); //获取页面所有链接 |
09 |
$snoopy->fetchlinks($snoopy->host); //获取链接 |
10 |
$snoopy->fetchform($snoopy->host); //获取表单 |
12 |
print_r($snoopy->results);
|
2. 下载指定url图片
01 |
include_once( include/snoopy.class.php ); //调用Snoopy类
|
03 |
function getImage($id,$url) {
|
05 |
$filename = $id . ".jpg";
|
09 |
if($temp->results != "") {
|
10 |
$handle = fopen("images/" . $filename, "w");
|
11 |
fwrite($handle, $temp->results);//写入抓得内容
|
3. 获取表单
3 |
print $snoopy->results;
|
4. 表单提交(如登陆等)
01 |
$formvars["username"] = "test";
|
02 |
$formvars["pwd"] = "123456";
|
05 |
$snoopy->submit($action,$formvars);//$formvars为提交的数组
|
06 |
echo $snoopy->results; //获取表单提交后的 返回的结果
|
08 |
$snoopy->submittext($action,$formvars); //提交后只返回 去除html的 文本 |
09 |
$snoopy->submitlinks($action,$formvars); //提交后只返回 链接 |
5. 伪装ip,伪装浏览器
查看源码
01 |
$formvars["username"] = "admin";
|
02 |
$formvars["pwd"] = "admin";
|
06 |
$snoopy->cookies["PHPSESSID"] = fc106b1918bd522cc863f36890e6fff7; //伪装sessionid
|
07 |
$snoopy->agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; //伪装浏览器
|
09 |
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
|
10 |
$snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip
|
11 |
$snoopy->submit($action,$formvars);
|
12 |
echo $snoopy->results;
|
snoopy下载
snoopy最新的是2008年更新的1.2.4版本,其开源下载地址如下,如果您下载遇到困难,可与志文工作室联系。...
分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。