
snoopy php网页抓取工具
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2021-11-27 11:07
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2) 我自然是复制了URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。
$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查了一下,果然有惊人的内情
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2) 我自然是复制了URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。

$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查了一下,果然有惊人的内情
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(php一个类使用教程的使用方法及示例:)
网站优化 • 优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2021-11-19 07:12
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,这个文章介绍snoopy详细使用教程。
史努比的一些特点:
需要php4以上,因为是php的一个类,不需要扩展支持服务器不支持curl时的最佳选择,
史努比类方法和示例:
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 要连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(Snoopyv0.1)
$referer 信息,如果有的话
$cookiescookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteokwhetherornottoallowredirectsoff-site.(true)
$expandlinks 是否补全地址的所有链接(真)
$user 认证用户名,如果有的话
$pass 认证用户名,如有 查看全部
snoopy php网页抓取工具(php一个类使用教程的使用方法及示例:)
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,这个文章介绍snoopy详细使用教程。
史努比的一些特点:
需要php4以上,因为是php的一个类,不需要扩展支持服务器不支持curl时的最佳选择,
史努比类方法和示例:
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 要连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(Snoopyv0.1)
$referer 信息,如果有的话
$cookiescookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteokwhetherornottoallowredirectsoff-site.(true)
$expandlinks 是否补全地址的所有链接(真)
$user 认证用户名,如果有的话
$pass 认证用户名,如有
snoopy php网页抓取工具(PHP类Snoopy的一些特点:*方便网页的文本内容)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-11-17 09:00
大家知道史努比在PHP类中是什么吗?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
PHP Snoopy 的一些特性:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
PHP类Snoopy的正确运行需要您服务器的PHP版本为4以上,并且支持PCRE(Perl Compatible Regular Expressions),并且支持所有基本的LAMP服务。
它提供了以下接口或方法:
获取($URI)
这个方法是抓取网页的内容,$URI是要抓取的网页的网址,结果存放在$this->results中。如果抓取一帧,每一帧都会被抓取,结果保存在一个数组中。
fetchtext($URI)
该方法与fetch()大致相同,只是结果是文本,不包括HTML标签等无关信息。
fetchform($URI)
该方法只返回被抓取网页上的表单元素。
fetchlinks($URI)
该方法只返回被抓取网页上的链接。默认返回的链接都是收录域名的链接。
提交($URI,$formvars)
此方法将表单提交到指定的 $URI。 $formvars 是要传递的表单变量数组。
提交文本($URI,$formvars)
该方法与submit()基本相同,只是返回的是文本,不包括html标签等无关数据。
提交链接($URI)
此方法返回链接。
上一篇:几种主流PHP框架的优缺点对比_PHP教程 查看全部
snoopy php网页抓取工具(PHP类Snoopy的一些特点:*方便网页的文本内容)
大家知道史努比在PHP类中是什么吗?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
PHP Snoopy 的一些特性:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
PHP类Snoopy的正确运行需要您服务器的PHP版本为4以上,并且支持PCRE(Perl Compatible Regular Expressions),并且支持所有基本的LAMP服务。
它提供了以下接口或方法:
获取($URI)
这个方法是抓取网页的内容,$URI是要抓取的网页的网址,结果存放在$this->results中。如果抓取一帧,每一帧都会被抓取,结果保存在一个数组中。
fetchtext($URI)
该方法与fetch()大致相同,只是结果是文本,不包括HTML标签等无关信息。
fetchform($URI)
该方法只返回被抓取网页上的表单元素。
fetchlinks($URI)
该方法只返回被抓取网页上的链接。默认返回的链接都是收录域名的链接。
提交($URI,$formvars)
此方法将表单提交到指定的 $URI。 $formvars 是要传递的表单变量数组。
提交文本($URI,$formvars)
该方法与submit()基本相同,只是返回的是文本,不包括html标签等无关数据。
提交链接($URI)
此方法返回链接。
上一篇:几种主流PHP框架的优缺点对比_PHP教程
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
网站优化 • 优采云 发表了文章 • 0 个评论 • 88 次浏览 • 2021-11-11 20:09
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网: 查看全部
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网:
snoopy php网页抓取工具(主流的爬虫Nutch开发语言:与Nutch比较:二者均为Java开源框架)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-11-06 23:21
主流爬虫
纳奇
开发语言:Java
主页:
介绍:
Apache的子项目之一是Lucene项目下的子项目。
Nutch 是一个完整的网络搜索引擎解决方案,基于 Lucene,类似于 Google。基于Hadoop的分布式处理模型保证了系统的性能。类似Eclipse的插件机制保证了系统可以定制,并且很容易集成到自己的应用程序中。之中。
拉宾
开发语言:C++
主页:
介绍:
Larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻人 Sébastien Ailleret 独立开发。larbin 的目的是能够跟踪页面的 URL 进行扩展抓取,最终为搜索引擎提供广泛的数据源。
larbin只是一个爬虫,也就是说larbin只爬网页,如何解析是用户自己做的。此外,larbin 没有提供有关如何将其存储在数据库中和构建索引的信息。
latbin 最初的设计也是基于设计简单但可配置性高的原则,所以我们可以看到,一个简单的 larbin 爬虫每天可以获取 500 万个网页,非常高效。
赫里特克斯
开发语言:Java
主页:
与纳奇相比:
两者都是 Java 开源框架。Heritrix 是 SourceForge 上的开源产品,Nutch 是 Apache 的子项目。他们都被称为网络爬虫。它们的实现原理基本一致:深度遍历网站在本地捕获这些资源,使用的方法是分析每个有效的URI网站,并提交一个Http请求得到相应的结果,生成本地文件和相应的日志信息等。
Heritrix 是一个“档案爬虫”——用于获取网站内容的完整、准确、深层副本。包括获取图片等非文字内容。抓取并存储相关内容。不拒绝任何内容,不对页面进行任何内容修改。重新抓取不会替换同一 URL 的前一次抓取。通过Web用户界面启动、监控和调整爬虫,可以灵活定义获取URL。
两者的区别:
Nutch 只获取和保存可索引的内容。Heritrix 接受这一切。力求保留页面的原创外观。
Nutch 可以修剪内容,或转换内容格式。
Nutch 以数据库优化的格式保存内容以备将来索引;刷新并替换旧内容。而 Heritrix 正在添加(追加)新的内容。
Nutch 是从命令行运行和控制的。Heritrix 有一个网页控制管理界面。
Nutch 的定制能力还不够强大,但现在已经改进了。Heritrix 可以控制更多的参数。
Heritrix 提供的功能没有 nutch 多,感觉就像从整个站点下载一样。既没有索引也没有解析,即使是重复爬取网址也不是很好。
Heritrix 功能强大,但是配置起来有点麻烦。
其他爬虫
网络学习
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
J-蜘蛛
J-Spider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外链接检查,分析网站的结构(可以创建一个网站@ > map),下载整个网站,也可以写一个JSpider插件扩展你需要的功能。
主轴
Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一组JSP标签库,让那些基于JSP的站点无需开发任何Java类就可以添加搜索功能。
蛛形纲动物
Arachnid:是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,可以开发一个简单的网络蜘蛛,可以在每一个网站中使用 解析一个页面后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
警报器
LARM 可以为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
snoics-爬行动物
snoics -reptile 是用纯 Java 开发的。它是用于捕获 网站 图像的工具。您可以使用配置文件中提供的 URL 条目来传输所有可以通过浏览器 GET 的 网站。这种方式获取的所有资源都是本地抓取的,包括网页和各类文件,如图片、flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
网络收获
Web-Harvest 是一个 Java 开源 Web 数据提取工具。它可以采集指定的网页并从这些网页中提取有用的数据。Web-Harvest主要使用XSLT、XQuery、正则表达式等技术来实现text/xml的操作。
蜘蛛侠
Spiderpy 是一个基于 Python 编码的开源网络爬虫工具,允许用户采集文件和搜索网站,并具有可配置的界面。
蜘蛛网网络 Xoops Mod 团队
pider Web Network Xoops Mod 是 Xoops 下的一个模块,完全由 PHP 语言实现。
蜘蛛侠
Hispider 是一种快速、高性能的蜘蛛,速度快
严格来说只能是蜘蛛系统的框架。没有详细的要求。目前只能提取URL、URL重复、异步DNS解析、队列任务、支持N机分布式下载、支持网站定向下载((需要配置hispiderd.ini白名单)。
特点及用途:
基于unix/linux系统开发
异步 DNS 解析
URL 重新加权 查看全部
snoopy php网页抓取工具(主流的爬虫Nutch开发语言:与Nutch比较:二者均为Java开源框架)
主流爬虫
纳奇
开发语言:Java
主页:
介绍:
Apache的子项目之一是Lucene项目下的子项目。
Nutch 是一个完整的网络搜索引擎解决方案,基于 Lucene,类似于 Google。基于Hadoop的分布式处理模型保证了系统的性能。类似Eclipse的插件机制保证了系统可以定制,并且很容易集成到自己的应用程序中。之中。
拉宾
开发语言:C++
主页:
介绍:
Larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻人 Sébastien Ailleret 独立开发。larbin 的目的是能够跟踪页面的 URL 进行扩展抓取,最终为搜索引擎提供广泛的数据源。
larbin只是一个爬虫,也就是说larbin只爬网页,如何解析是用户自己做的。此外,larbin 没有提供有关如何将其存储在数据库中和构建索引的信息。
latbin 最初的设计也是基于设计简单但可配置性高的原则,所以我们可以看到,一个简单的 larbin 爬虫每天可以获取 500 万个网页,非常高效。
赫里特克斯
开发语言:Java
主页:
与纳奇相比:
两者都是 Java 开源框架。Heritrix 是 SourceForge 上的开源产品,Nutch 是 Apache 的子项目。他们都被称为网络爬虫。它们的实现原理基本一致:深度遍历网站在本地捕获这些资源,使用的方法是分析每个有效的URI网站,并提交一个Http请求得到相应的结果,生成本地文件和相应的日志信息等。
Heritrix 是一个“档案爬虫”——用于获取网站内容的完整、准确、深层副本。包括获取图片等非文字内容。抓取并存储相关内容。不拒绝任何内容,不对页面进行任何内容修改。重新抓取不会替换同一 URL 的前一次抓取。通过Web用户界面启动、监控和调整爬虫,可以灵活定义获取URL。
两者的区别:
Nutch 只获取和保存可索引的内容。Heritrix 接受这一切。力求保留页面的原创外观。
Nutch 可以修剪内容,或转换内容格式。
Nutch 以数据库优化的格式保存内容以备将来索引;刷新并替换旧内容。而 Heritrix 正在添加(追加)新的内容。
Nutch 是从命令行运行和控制的。Heritrix 有一个网页控制管理界面。
Nutch 的定制能力还不够强大,但现在已经改进了。Heritrix 可以控制更多的参数。
Heritrix 提供的功能没有 nutch 多,感觉就像从整个站点下载一样。既没有索引也没有解析,即使是重复爬取网址也不是很好。
Heritrix 功能强大,但是配置起来有点麻烦。
其他爬虫
网络学习
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
J-蜘蛛
J-Spider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外链接检查,分析网站的结构(可以创建一个网站@ > map),下载整个网站,也可以写一个JSpider插件扩展你需要的功能。
主轴
Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一组JSP标签库,让那些基于JSP的站点无需开发任何Java类就可以添加搜索功能。
蛛形纲动物
Arachnid:是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,可以开发一个简单的网络蜘蛛,可以在每一个网站中使用 解析一个页面后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
警报器
LARM 可以为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
snoics-爬行动物
snoics -reptile 是用纯 Java 开发的。它是用于捕获 网站 图像的工具。您可以使用配置文件中提供的 URL 条目来传输所有可以通过浏览器 GET 的 网站。这种方式获取的所有资源都是本地抓取的,包括网页和各类文件,如图片、flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
网络收获
Web-Harvest 是一个 Java 开源 Web 数据提取工具。它可以采集指定的网页并从这些网页中提取有用的数据。Web-Harvest主要使用XSLT、XQuery、正则表达式等技术来实现text/xml的操作。
蜘蛛侠
Spiderpy 是一个基于 Python 编码的开源网络爬虫工具,允许用户采集文件和搜索网站,并具有可配置的界面。
蜘蛛网网络 Xoops Mod 团队
pider Web Network Xoops Mod 是 Xoops 下的一个模块,完全由 PHP 语言实现。
蜘蛛侠
Hispider 是一种快速、高性能的蜘蛛,速度快
严格来说只能是蜘蛛系统的框架。没有详细的要求。目前只能提取URL、URL重复、异步DNS解析、队列任务、支持N机分布式下载、支持网站定向下载((需要配置hispiderd.ini白名单)。
特点及用途:
基于unix/linux系统开发
异步 DNS 解析
URL 重新加权
snoopy php网页抓取工具(Snoopy.class.php的特点和一些常见的用法介绍)
网站优化 • 优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2021-11-04 06:19
Snoopy 是一个非常强大的 PHP 类,可以用来模拟浏览器来完成获取网页内容和发送表单的任务。下面详细介绍Snoopy.class.php的特性和一些常用用法。
官方网站:(不能打开国外的网站并使用Skyline浏览器)
下载链接:
本站下载地址:PHP采集库Snoopy.class.php下载
以下是史努比的一些功能:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,表单fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展为高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持重定向时传递cookie
备注:Snoopy.class.php 需要 php4 或更高版本。既然是php类,就不需要扩展支持了。服务器不支持 curl 时的最佳选择。
下面介绍一些常用的类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI参数是被爬取的网页的URL地址,爬取的结果存放在$this->results中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy.class.php的特点和一些常见的用法介绍)
Snoopy 是一个非常强大的 PHP 类,可以用来模拟浏览器来完成获取网页内容和发送表单的任务。下面详细介绍Snoopy.class.php的特性和一些常用用法。
官方网站:(不能打开国外的网站并使用Skyline浏览器)
下载链接:
本站下载地址:PHP采集库Snoopy.class.php下载
以下是史努比的一些功能:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,表单fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展为高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持重定向时传递cookie
备注:Snoopy.class.php 需要 php4 或更高版本。既然是php类,就不需要扩展支持了。服务器不支持 curl 时的最佳选择。
下面介绍一些常用的类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI参数是被爬取的网页的URL地址,爬取的结果存放在$this->results中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(Snoopy()抓取网页的文本内容(去除HTML标签))
网站优化 • 优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2021-11-03 00:12
内容
什么是史努比?
Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
官方网站
史努比(Snoopy),一个可爱的品类~
你是怎么遇到的?
因为之前在Hulvlin看到@浪人写的乐讯内部信机,当时觉得有点意思,但是后来使用的时候,发现了一些问题。有时程序中的内信失败,所以我打算修改它。就这样,我认识了史努比。
史努比的一些特点
获取网页内容 fetch()
抓取网页的文本内容(去除HTML标签)fetchtext()
获取网页链接,表单 fetchlinks() fetchform()
支持代理主机
支持基本的用户名/密码验证
支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
支持浏览器重定向,控制重定向深度
可以将网页中的链接扩展为高质量的 url(默认)
提交数据并获取返回值
支持跟踪HTML框架
支持在重定向时传递 cookie
需要php4或以上。既然是php的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法1.fetch($uri)
这是用于抓取网页内容的方法。$URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2.fetchtext($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3.fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4.fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
5.提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
6.提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
7.提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性(括号内为默认值)
$host 连接的主机
$port 连接端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。(真的)
$expandlinks 是否完成所有链接以完成地址(true)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy()抓取网页的文本内容(去除HTML标签))
内容
什么是史努比?
Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
官方网站
史努比(Snoopy),一个可爱的品类~
你是怎么遇到的?
因为之前在Hulvlin看到@浪人写的乐讯内部信机,当时觉得有点意思,但是后来使用的时候,发现了一些问题。有时程序中的内信失败,所以我打算修改它。就这样,我认识了史努比。
史努比的一些特点
获取网页内容 fetch()
抓取网页的文本内容(去除HTML标签)fetchtext()
获取网页链接,表单 fetchlinks() fetchform()
支持代理主机
支持基本的用户名/密码验证
支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
支持浏览器重定向,控制重定向深度
可以将网页中的链接扩展为高质量的 url(默认)
提交数据并获取返回值
支持跟踪HTML框架
支持在重定向时传递 cookie
需要php4或以上。既然是php的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法1.fetch($uri)
这是用于抓取网页内容的方法。$URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2.fetchtext($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3.fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4.fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
5.提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
6.提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
7.提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性(括号内为默认值)
$host 连接的主机
$port 连接端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。(真的)
$expandlinks 是否完成所有链接以完成地址(true)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2021-10-31 23:05
)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是无法伪装的。相反,那些通过http头(可以防止代理)获取IP的人可以制作自己的IP。
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid,并记下sessionid和验证码值,然后使用snoopy锻造它。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p> 查看全部
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能
)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是无法伪装的。相反,那些通过http头(可以防止代理)获取IP的人可以制作自己的IP。
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid,并记下sessionid和验证码值,然后使用snoopy锻造它。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p>
snoopy php网页抓取工具(Snoopy类的下载地址和下载类下载方法汇总)
网站优化 • 优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2021-10-29 00:02
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页的内容并发送表单。
Snoopy 的正确运行需要您服务器的 PHP 版本在 4.0 以上,并且支持 PCRE(Perl Compatible Regular Expressions),以及基本的 LAMP 服务。史努比分类下载地址为:
一、史努比的一些特点:
1.抓取网页抓取的内容
2.获取网页的文本内容(去除HTML标签)fetchtext
3.获取网页链接,表单获取链接获取表单
4.支持代理主机
5.支持基本的用户名/密码验证
6.支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7.支持浏览器重定向,控制重定向深度
8.可以将网页中的链接扩展为高质量的url(默认)
9.提交数据并获取返回值
10.支持跟踪 HTML 框架
11. 支持重定向时cookie的传输,php4以上就可以了。既然是php类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
二、类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
三、类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy类的下载地址和下载类下载方法汇总)
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页的内容并发送表单。
Snoopy 的正确运行需要您服务器的 PHP 版本在 4.0 以上,并且支持 PCRE(Perl Compatible Regular Expressions),以及基本的 LAMP 服务。史努比分类下载地址为:
一、史努比的一些特点:
1.抓取网页抓取的内容
2.获取网页的文本内容(去除HTML标签)fetchtext
3.获取网页链接,表单获取链接获取表单
4.支持代理主机
5.支持基本的用户名/密码验证
6.支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7.支持浏览器重定向,控制重定向深度
8.可以将网页中的链接扩展为高质量的url(默认)
9.提交数据并获取返回值
10.支持跟踪 HTML 框架
11. 支持重定向时cookie的传输,php4以上就可以了。既然是php类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
二、类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
三、类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(:Snoopy是什么?的特点:方便抓取网页)
网站优化 • 优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2021-10-28 13:20
内容
[]
当你使用php并且想做一些采集任务时,那么你应该了解snoopy。
史努比是什么?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
史努比的一些特点:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置 user_agent、referer(传入路由)、cookies 和 header 内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
* 支持再次重定向时传递cookie
要求:
史努比需要 PHP 和 PCRE(Perl 兼容正则表达式),
应该是 PHP 3.0.9 及更高版本。对于读取超时支持,它需要
PHP 4 Beta 4 或更高版本。史努比是用 PHP 3.0.12.
开发和测试的
类方法:
获取($URI)
——————
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
—————-
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
———————-
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
——————————
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
—————-
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(:Snoopy是什么?的特点:方便抓取网页)
内容
[]
当你使用php并且想做一些采集任务时,那么你应该了解snoopy。
史努比是什么?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
史努比的一些特点:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置 user_agent、referer(传入路由)、cookies 和 header 内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
* 支持再次重定向时传递cookie
要求:
史努比需要 PHP 和 PCRE(Perl 兼容正则表达式),
应该是 PHP 3.0.9 及更高版本。对于读取超时支持,它需要
PHP 4 Beta 4 或更高版本。史努比是用 PHP 3.0.12.
开发和测试的
类方法:
获取($URI)
——————
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
—————-
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
———————-
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
——————————
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
—————-
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(PHP5.3.阅读全文PHP-FPM配置及使用总结(组图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-10-27 18:03
阿里云>云栖社区>主题图>P>php网页错误追踪
推荐活动:
更多优惠>
当前主题:php网页错误跟踪添加到采集夹
相关话题:
php网页错误跟踪相关博客查看更多博客
基于鼠标点击跟踪的用户点击行为...
作者:白占堂1001人浏览评论:08年前
想知道你的网站设计是否合理?您确定您的按钮和链接放置在它们应有的位置吗?您想确切地知道用户对页面感兴趣的位置吗?没有人能猜到用户喜欢什么。那些“我认为”和“我认为”都是无稽之谈。你有数据吗?前阵子看到车东的《基于鼠标点击的用户点跟踪》。
阅读全文
PHP性能调优---PHP-FPM配置及使用总结
作者:suboysugar1589 人浏览评论:04年前
PHP-FPM 配置和使用总结:php-FPM 是一个 PHP FastCGI 管理器。它实际上是一个 PHP 源代码的补丁。它旨在将 FastCGI 进程管理引入 PHP 软件包。我们必须将其修补到 PHP 源代码中。在代码中,然后编译它才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结
作者:科技小哥 1381人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结
作者:技术小哥 1372人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP snooping 介绍 采集 class snoopy
作者:thinkyoung708人浏览评论:06年前
PHP爬虫采集类snoopy介绍了一个PHP爬虫程序,写于2011年7月4日,已阅读10270次。谢谢参考或原服务器。花了 14.288 ms 进行了 2 次数据库查询,努力为您提供此页面。试试阅读模式?希望
阅读全文
snoopy(强大的PHP采集类)详细介绍
作者:suboysugar797人浏览评论:06年前
史努比是一个php类,用来模拟浏览器的功能。它可以获取网页内容并发送表格。可以用来开发一些采集程序和小偷程序。这个文章详细介绍了snoopy的使用。Snoopy 的一些功能: fetch 网页内容 fetch fetch 网页文字内容(去除 HTML 标签) fetch
阅读全文
linux网站 构建示例
作者:小科技达人1492人浏览评论:03年前
我们知道windows网站的搭建一般是:IIS+Asp+Sqlserver,linux网站的搭建是:Apache+php+Mysql。两者是有区别的,但是为什么我们很多门户网站网站都选择linux-apache+php+mysql?当然它的安全性,Ap
阅读全文
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)
作者:小科技专家1263人浏览评论:03年前
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12) 系统环境:centos 5.6 (x64)+Nginx 1.0.4+Mysql 5.@ > 5.12 + PHP 5.3.6 包裹存放位置/us
阅读全文 查看全部
snoopy php网页抓取工具(PHP5.3.阅读全文PHP-FPM配置及使用总结(组图))
阿里云>云栖社区>主题图>P>php网页错误追踪

推荐活动:
更多优惠>
当前主题:php网页错误跟踪添加到采集夹
相关话题:
php网页错误跟踪相关博客查看更多博客
基于鼠标点击跟踪的用户点击行为...


作者:白占堂1001人浏览评论:08年前
想知道你的网站设计是否合理?您确定您的按钮和链接放置在它们应有的位置吗?您想确切地知道用户对页面感兴趣的位置吗?没有人能猜到用户喜欢什么。那些“我认为”和“我认为”都是无稽之谈。你有数据吗?前阵子看到车东的《基于鼠标点击的用户点跟踪》。
阅读全文
PHP性能调优---PHP-FPM配置及使用总结


作者:suboysugar1589 人浏览评论:04年前
PHP-FPM 配置和使用总结:php-FPM 是一个 PHP FastCGI 管理器。它实际上是一个 PHP 源代码的补丁。它旨在将 FastCGI 进程管理引入 PHP 软件包。我们必须将其修补到 PHP 源代码中。在代码中,然后编译它才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结


作者:科技小哥 1381人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结


作者:技术小哥 1372人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP snooping 介绍 采集 class snoopy


作者:thinkyoung708人浏览评论:06年前
PHP爬虫采集类snoopy介绍了一个PHP爬虫程序,写于2011年7月4日,已阅读10270次。谢谢参考或原服务器。花了 14.288 ms 进行了 2 次数据库查询,努力为您提供此页面。试试阅读模式?希望
阅读全文
snoopy(强大的PHP采集类)详细介绍


作者:suboysugar797人浏览评论:06年前
史努比是一个php类,用来模拟浏览器的功能。它可以获取网页内容并发送表格。可以用来开发一些采集程序和小偷程序。这个文章详细介绍了snoopy的使用。Snoopy 的一些功能: fetch 网页内容 fetch fetch 网页文字内容(去除 HTML 标签) fetch
阅读全文
linux网站 构建示例


作者:小科技达人1492人浏览评论:03年前
我们知道windows网站的搭建一般是:IIS+Asp+Sqlserver,linux网站的搭建是:Apache+php+Mysql。两者是有区别的,但是为什么我们很多门户网站网站都选择linux-apache+php+mysql?当然它的安全性,Ap
阅读全文
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)


作者:小科技专家1263人浏览评论:03年前
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12) 系统环境:centos 5.6 (x64)+Nginx 1.0.4+Mysql 5.@ > 5.12 + PHP 5.3.6 包裹存放位置/us
阅读全文
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
网站优化 • 优采云 发表了文章 • 0 个评论 • 86 次浏览 • 2021-10-26 14:04
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网: 查看全部
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网:
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 61 次浏览 • 2021-10-26 14:02
爬取前记得将php.ini中的max_execution_time设置为较大的值,否则会报错。
一、使用Snoopy.class.php抓取页面
一个非常可爱的班级名称。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2)我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,稍后分析使用。<//p
pimg src='https://www.programminghunter.com/images/771/48/48304ba5e6f9fe08f3fa1abda7d326ab.gif' alt='复制代码'//p
ppre$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i = 10; $i++) {
$url = 'http://www.guahao.com/hospital/areahospitals?p=全国&pageNo=' . $i;
$snoopy-fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3)奇怪的是,返回的内容不是国家内容,而是上海相关内容
4)怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5)在请求中放入cookie的值,添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,DOM结构如下图所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ 工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性
$host
连接的主机
$端口
连接端口
$proxy_host
使用的代理主机,如果有的话
$proxy_port
使用的代理主机端口,如果有的话
$代理
用户代理伪装(史努比 v0.1)
$referer
访问信息,如果有的话
$cookies
Cookies,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。 (真实)
$expandlinks
是否补全链接地址(真)
$用户
经过身份验证的用户名(如果有)
$pass
经过身份验证的用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$maxlength
最长返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,该属性返回true(需要PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
爬取前记得将php.ini中的max_execution_time设置为较大的值,否则会报错。

一、使用Snoopy.class.php抓取页面

一个非常可爱的班级名称。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:

2)我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,稍后分析使用。<//p
pimg src='https://www.programminghunter.com/images/771/48/48304ba5e6f9fe08f3fa1abda7d326ab.gif' alt='复制代码'//p
ppre$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i = 10; $i++) {
$url = 'http://www.guahao.com/hospital/areahospitals?p=全国&pageNo=' . $i;
$snoopy-fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3)奇怪的是,返回的内容不是国家内容,而是上海相关内容

4)怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕

5)在请求中放入cookie的值,添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,DOM结构如下图所示:

使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ 工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性
$host
连接的主机
$端口
连接端口
$proxy_host
使用的代理主机,如果有的话
$proxy_port
使用的代理主机端口,如果有的话
$代理
用户代理伪装(史努比 v0.1)
$referer
访问信息,如果有的话
$cookies
Cookies,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。 (真实)
$expandlinks
是否补全链接地址(真)
$用户
经过身份验证的用户名(如果有)
$pass
经过身份验证的用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$maxlength
最长返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,该属性返回true(需要PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(php类Snoopy的特点及特点分析-上海怡健医学)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-10-26 14:01
Snoopy 是一个 php 类,用于模拟浏览器的一些简单功能,可以获取网页内容、发送表单等操作。 Snoopy 需要您服务器的 PHP 版本 4 或更高版本才能正确运行,并且支持 PCRE(Perl Compatible Regular Expressions),并且支持所有基本的 LAMP 服务。既然是php类,不需要扩展支持,所以是服务器不支持curl时的最佳选择。
史努比的特点:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,形成fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展成高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架
11、支持重定向时传递cookie
史努比类下载链接:
史努比类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
史努比类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(php类Snoopy的特点及特点分析-上海怡健医学)
Snoopy 是一个 php 类,用于模拟浏览器的一些简单功能,可以获取网页内容、发送表单等操作。 Snoopy 需要您服务器的 PHP 版本 4 或更高版本才能正确运行,并且支持 PCRE(Perl Compatible Regular Expressions),并且支持所有基本的 LAMP 服务。既然是php类,不需要扩展支持,所以是服务器不支持curl时的最佳选择。
史努比的特点:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,形成fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展成高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架
11、支持重定向时传递cookie
史努比类下载链接:
史努比类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
史努比类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 82 次浏览 • 2021-10-21 00:01
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院的信息内容,如下图:
2) 我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。
$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院的信息内容,如下图:
2) 我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。

$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(phpsnoopy用法:Snoopy($URI)类方法及示例)
网站优化 • 优采云 发表了文章 • 0 个评论 • 83 次浏览 • 2021-10-20 12:07
php snoopy 用法:1、[fetch($URI)] 抓取网页内容; 2、[fetchtext($URI)] 删除 HTML 标签和其他无关数据; 3、【fetchform($URI)】返回网页中表单的内容。
本教程运行环境:windows7系统,PHP5.6版本,DELL G3电脑。
php snoopy 用法:
史努比类方法和示例:
1、fetch($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2、fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3、fetchform($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4、fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
5、提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6、提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7、提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies(如果有)
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(phpsnoopy用法:Snoopy($URI)类方法及示例)
php snoopy 用法:1、[fetch($URI)] 抓取网页内容; 2、[fetchtext($URI)] 删除 HTML 标签和其他无关数据; 3、【fetchform($URI)】返回网页中表单的内容。

本教程运行环境:windows7系统,PHP5.6版本,DELL G3电脑。
php snoopy 用法:
史努比类方法和示例:
1、fetch($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2、fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3、fetchform($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4、fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
5、提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6、提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7、提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies(如果有)
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(作者MonteOhrt类版本V2.0三、类的特性)
网站优化 • 优采云 发表了文章 • 0 个评论 • 50 次浏览 • 2021-10-15 06:13
Monte Ohrt 类的作者
V2.0 类的版本
三、 类的特点
回到书中,我们先了解一下它的特点,掌握它的特点对我们理解它有很大的帮助!
1、方便抓取网页的内容 fetch
2、方便抓取网页的文字(去掉HTML代码)fetchtext
3、方便抓取网页的链接 fetchlinks
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
四、类方法
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,$formvars)
本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。默认情况下,相对链接将自动补全,转换成完整的URL。
五、 类属性(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装 (Snoopy v0.1)
$referer 来路信息,如果有的话
$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、fetch 获取网页内容,示例
源代码如下:
<p> 查看全部
snoopy php网页抓取工具(作者MonteOhrt类版本V2.0三、类的特性)
Monte Ohrt 类的作者
V2.0 类的版本
三、 类的特点
回到书中,我们先了解一下它的特点,掌握它的特点对我们理解它有很大的帮助!
1、方便抓取网页的内容 fetch
2、方便抓取网页的文字(去掉HTML代码)fetchtext
3、方便抓取网页的链接 fetchlinks
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
四、类方法
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,$formvars)
本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。默认情况下,相对链接将自动补全,转换成完整的URL。
五、 类属性(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装 (Snoopy v0.1)
$referer 来路信息,如果有的话
$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、fetch 获取网页内容,示例
源代码如下:
<p>
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能)
网站优化 • 优采云 发表了文章 • 0 个评论 • 61 次浏览 • 2021-10-13 08:23
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid。同时记下sessionid和验证码值,然后用snoopy伪造。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p> 查看全部
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid。同时记下sessionid和验证码值,然后用snoopy伪造。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p>
snoopy php网页抓取工具(603999.SH读者传媒:2017年年度报告获取网页pdf下载地址 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 110 次浏览 • 2021-10-13 00:11
)
任务:批量抓取网页pdf文件
有一个 excel,其中有数千个指向 pdf 下载链接的网页地址。现在需要批量抓取这些网页地址中的pdf文件。
Python环境:
蟒蛇3
打开pyxl
Beautifulsoup4 读取excel,获取网页地址
使用 openpyxl 库读取 .xslx 文件;
(我尝试使用xlrd库读取.xsl文件,但是无法获取超链接)
安装 openpyxl
pip install openpyxl
提取 xslx 文件中的超链接
示例文件结构
公告日期 证券代码公告名称
2018-04-20
603999.SH
读者媒体:2017年年报
2018-04-28
603998.SH
方盛药业:2017年年报
def readxlsx(path):
workbook = openpyxl.load_workbook(path)
Data_sheet = workbook.get_sheet_by_name('sheet1')
rowNum = Data_sheet.max_row #读取最大行数
c = 3 # 第三列是所需要提取的数据
server = 'http://news.windin.com/ns/'
for row in range(1, rowNum + 1):
link = Data_sheet.cell(row=row, column=c).value
url = re.split(r'\"', link)[1]
print(url)
downEachPdf(url, server)
获取网页pdf下载地址
进入阅读媒体:2017年年报,可以在Chrome浏览器中按F12查看网页源码,以下是源码截取:
<p>附件: 查看全部
snoopy php网页抓取工具(603999.SH读者传媒:2017年年度报告获取网页pdf下载地址
)
任务:批量抓取网页pdf文件
有一个 excel,其中有数千个指向 pdf 下载链接的网页地址。现在需要批量抓取这些网页地址中的pdf文件。
Python环境:
蟒蛇3
打开pyxl
Beautifulsoup4 读取excel,获取网页地址
使用 openpyxl 库读取 .xslx 文件;
(我尝试使用xlrd库读取.xsl文件,但是无法获取超链接)
安装 openpyxl
pip install openpyxl
提取 xslx 文件中的超链接
示例文件结构
公告日期 证券代码公告名称
2018-04-20
603999.SH
读者媒体:2017年年报
2018-04-28
603998.SH
方盛药业:2017年年报
def readxlsx(path):
workbook = openpyxl.load_workbook(path)
Data_sheet = workbook.get_sheet_by_name('sheet1')
rowNum = Data_sheet.max_row #读取最大行数
c = 3 # 第三列是所需要提取的数据
server = 'http://news.windin.com/ns/'
for row in range(1, rowNum + 1):
link = Data_sheet.cell(row=row, column=c).value
url = re.split(r'\"', link)[1]
print(url)
downEachPdf(url, server)
获取网页pdf下载地址
进入阅读媒体:2017年年报,可以在Chrome浏览器中按F12查看网页源码,以下是源码截取:
<p>附件:
snoopy php网页抓取工具(Snoopy($URI)功能特点及去除和发送表单)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-10-10 23:13
简介:Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。 **官网:/** ...史努比的一些功能:获取网页内容 fetch() fetch...
<p>引言:Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
**官方网址:http://snoopy.sourceforge.net/**
简单一句话表达:"Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单。",补一下脑。
Snoopy的一些功能特点:
抓取网页的内容 fetch()抓取网页的文本内容 (去除HTML标签) fetchtext()抓取网页的链接,表单 fetchlinks() fetchform()支持代理主机支持基本的用户名/密码验证支持设置 user_agent, referer(来路), cookies 和 header content(头文件)支持浏览器重定向,并能控制重定向深度能把网页中的链接扩展成高质量的url(默认)提交数据并且获取返回值支持跟踪HTML框架支持重定向的时候传递cookies
注意:PHP容器要求php4以上就可以。由于本身是php一个类,无需扩支持,它是服务器不支持curl时候的最好选择。
Come on,跟着SuperDo一起来了解一下Snoopy的使用吧。。。
类方法
下面,我们为大家准备了Snoopy常用的一些类方法。
1. fetch($uri)[b]
这是为了抓取网页的内容而使用的方法。$URI参数是被抓取网页的URL地址。抓取的结果被存储在 $this->results 中。
如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。
</p>
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性(括号内为默认值)
基本示例
通用示例:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://do.org.cn/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://do.org.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://do.org.cn")) {
echo "".htmlspecialchars($snoopy->results)."
n";} else {echo "error fetching document: ".$snoopy->error."n";}
获取指定url的内容:
表单提交:
伪装ip,伪装浏览器:
详细说明:
原来我们可以伪装会话,伪装浏览器,伪装ip,(旁白:猥亵笑HOHO)我们可以做很多事情。
例如:用验证码投票,验证ip,可以连续投票。
PS:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何骗取验证码,简单说一下:
操作方法:先用普通浏览器查看页面,找到验证码对应的sessionid,记下sessionid和验证码的值,然后用snoopy伪造
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
制作其他属性:
两个综合例子
马克,有兴趣的可以看看。
示例 1:
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://do.org.cn/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.google.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."
n";
// print the headers:
print "<b>Headers:[/b]
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
} else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
示例 2:(图片采集)
<p> 查看全部
snoopy php网页抓取工具(Snoopy($URI)功能特点及去除和发送表单)
简介:Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。 **官网:/** ...史努比的一些功能:获取网页内容 fetch() fetch...
<p>引言:Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
**官方网址:http://snoopy.sourceforge.net/**
简单一句话表达:"Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单。",补一下脑。
Snoopy的一些功能特点:
抓取网页的内容 fetch()抓取网页的文本内容 (去除HTML标签) fetchtext()抓取网页的链接,表单 fetchlinks() fetchform()支持代理主机支持基本的用户名/密码验证支持设置 user_agent, referer(来路), cookies 和 header content(头文件)支持浏览器重定向,并能控制重定向深度能把网页中的链接扩展成高质量的url(默认)提交数据并且获取返回值支持跟踪HTML框架支持重定向的时候传递cookies
注意:PHP容器要求php4以上就可以。由于本身是php一个类,无需扩支持,它是服务器不支持curl时候的最好选择。
Come on,跟着SuperDo一起来了解一下Snoopy的使用吧。。。

类方法
下面,我们为大家准备了Snoopy常用的一些类方法。
1. fetch($uri)[b]
这是为了抓取网页的内容而使用的方法。$URI参数是被抓取网页的URL地址。抓取的结果被存储在 $this->results 中。
如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。
</p>
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性(括号内为默认值)
基本示例
通用示例:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://do.org.cn/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://do.org.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://do.org.cn")) {
echo "".htmlspecialchars($snoopy->results)."
n";} else {echo "error fetching document: ".$snoopy->error."n";}
获取指定url的内容:
表单提交:
伪装ip,伪装浏览器:
详细说明:
原来我们可以伪装会话,伪装浏览器,伪装ip,(旁白:猥亵笑HOHO)我们可以做很多事情。
例如:用验证码投票,验证ip,可以连续投票。
PS:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何骗取验证码,简单说一下:
操作方法:先用普通浏览器查看页面,找到验证码对应的sessionid,记下sessionid和验证码的值,然后用snoopy伪造
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
制作其他属性:
两个综合例子
马克,有兴趣的可以看看。
示例 1:
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://do.org.cn/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.google.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."
n";
// print the headers:
print "<b>Headers:[/b]
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
} else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
示例 2:(图片采集)
<p>
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2021-11-27 11:07
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2) 我自然是复制了URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。
$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查了一下,果然有惊人的内情
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2) 我自然是复制了URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。

$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查了一下,果然有惊人的内情
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(php一个类使用教程的使用方法及示例:)
网站优化 • 优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2021-11-19 07:12
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,这个文章介绍snoopy详细使用教程。
史努比的一些特点:
需要php4以上,因为是php的一个类,不需要扩展支持服务器不支持curl时的最佳选择,
史努比类方法和示例:
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 要连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(Snoopyv0.1)
$referer 信息,如果有的话
$cookiescookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteokwhetherornottoallowredirectsoff-site.(true)
$expandlinks 是否补全地址的所有链接(真)
$user 认证用户名,如果有的话
$pass 认证用户名,如有 查看全部
snoopy php网页抓取工具(php一个类使用教程的使用方法及示例:)
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,这个文章介绍snoopy详细使用教程。
史努比的一些特点:
需要php4以上,因为是php的一个类,不需要扩展支持服务器不支持curl时的最佳选择,
史努比类方法和示例:
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 要连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(Snoopyv0.1)
$referer 信息,如果有的话
$cookiescookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteokwhetherornottoallowredirectsoff-site.(true)
$expandlinks 是否补全地址的所有链接(真)
$user 认证用户名,如果有的话
$pass 认证用户名,如有
snoopy php网页抓取工具(PHP类Snoopy的一些特点:*方便网页的文本内容)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-11-17 09:00
大家知道史努比在PHP类中是什么吗?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
PHP Snoopy 的一些特性:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
PHP类Snoopy的正确运行需要您服务器的PHP版本为4以上,并且支持PCRE(Perl Compatible Regular Expressions),并且支持所有基本的LAMP服务。
它提供了以下接口或方法:
获取($URI)
这个方法是抓取网页的内容,$URI是要抓取的网页的网址,结果存放在$this->results中。如果抓取一帧,每一帧都会被抓取,结果保存在一个数组中。
fetchtext($URI)
该方法与fetch()大致相同,只是结果是文本,不包括HTML标签等无关信息。
fetchform($URI)
该方法只返回被抓取网页上的表单元素。
fetchlinks($URI)
该方法只返回被抓取网页上的链接。默认返回的链接都是收录域名的链接。
提交($URI,$formvars)
此方法将表单提交到指定的 $URI。 $formvars 是要传递的表单变量数组。
提交文本($URI,$formvars)
该方法与submit()基本相同,只是返回的是文本,不包括html标签等无关数据。
提交链接($URI)
此方法返回链接。
上一篇:几种主流PHP框架的优缺点对比_PHP教程 查看全部
snoopy php网页抓取工具(PHP类Snoopy的一些特点:*方便网页的文本内容)
大家知道史努比在PHP类中是什么吗?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
PHP Snoopy 的一些特性:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
PHP类Snoopy的正确运行需要您服务器的PHP版本为4以上,并且支持PCRE(Perl Compatible Regular Expressions),并且支持所有基本的LAMP服务。
它提供了以下接口或方法:
获取($URI)
这个方法是抓取网页的内容,$URI是要抓取的网页的网址,结果存放在$this->results中。如果抓取一帧,每一帧都会被抓取,结果保存在一个数组中。
fetchtext($URI)
该方法与fetch()大致相同,只是结果是文本,不包括HTML标签等无关信息。
fetchform($URI)
该方法只返回被抓取网页上的表单元素。
fetchlinks($URI)
该方法只返回被抓取网页上的链接。默认返回的链接都是收录域名的链接。
提交($URI,$formvars)
此方法将表单提交到指定的 $URI。 $formvars 是要传递的表单变量数组。
提交文本($URI,$formvars)
该方法与submit()基本相同,只是返回的是文本,不包括html标签等无关数据。
提交链接($URI)
此方法返回链接。
上一篇:几种主流PHP框架的优缺点对比_PHP教程
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
网站优化 • 优采云 发表了文章 • 0 个评论 • 88 次浏览 • 2021-11-11 20:09
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网: 查看全部
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网:
snoopy php网页抓取工具(主流的爬虫Nutch开发语言:与Nutch比较:二者均为Java开源框架)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-11-06 23:21
主流爬虫
纳奇
开发语言:Java
主页:
介绍:
Apache的子项目之一是Lucene项目下的子项目。
Nutch 是一个完整的网络搜索引擎解决方案,基于 Lucene,类似于 Google。基于Hadoop的分布式处理模型保证了系统的性能。类似Eclipse的插件机制保证了系统可以定制,并且很容易集成到自己的应用程序中。之中。
拉宾
开发语言:C++
主页:
介绍:
Larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻人 Sébastien Ailleret 独立开发。larbin 的目的是能够跟踪页面的 URL 进行扩展抓取,最终为搜索引擎提供广泛的数据源。
larbin只是一个爬虫,也就是说larbin只爬网页,如何解析是用户自己做的。此外,larbin 没有提供有关如何将其存储在数据库中和构建索引的信息。
latbin 最初的设计也是基于设计简单但可配置性高的原则,所以我们可以看到,一个简单的 larbin 爬虫每天可以获取 500 万个网页,非常高效。
赫里特克斯
开发语言:Java
主页:
与纳奇相比:
两者都是 Java 开源框架。Heritrix 是 SourceForge 上的开源产品,Nutch 是 Apache 的子项目。他们都被称为网络爬虫。它们的实现原理基本一致:深度遍历网站在本地捕获这些资源,使用的方法是分析每个有效的URI网站,并提交一个Http请求得到相应的结果,生成本地文件和相应的日志信息等。
Heritrix 是一个“档案爬虫”——用于获取网站内容的完整、准确、深层副本。包括获取图片等非文字内容。抓取并存储相关内容。不拒绝任何内容,不对页面进行任何内容修改。重新抓取不会替换同一 URL 的前一次抓取。通过Web用户界面启动、监控和调整爬虫,可以灵活定义获取URL。
两者的区别:
Nutch 只获取和保存可索引的内容。Heritrix 接受这一切。力求保留页面的原创外观。
Nutch 可以修剪内容,或转换内容格式。
Nutch 以数据库优化的格式保存内容以备将来索引;刷新并替换旧内容。而 Heritrix 正在添加(追加)新的内容。
Nutch 是从命令行运行和控制的。Heritrix 有一个网页控制管理界面。
Nutch 的定制能力还不够强大,但现在已经改进了。Heritrix 可以控制更多的参数。
Heritrix 提供的功能没有 nutch 多,感觉就像从整个站点下载一样。既没有索引也没有解析,即使是重复爬取网址也不是很好。
Heritrix 功能强大,但是配置起来有点麻烦。
其他爬虫
网络学习
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
J-蜘蛛
J-Spider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外链接检查,分析网站的结构(可以创建一个网站@ > map),下载整个网站,也可以写一个JSpider插件扩展你需要的功能。
主轴
Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一组JSP标签库,让那些基于JSP的站点无需开发任何Java类就可以添加搜索功能。
蛛形纲动物
Arachnid:是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,可以开发一个简单的网络蜘蛛,可以在每一个网站中使用 解析一个页面后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
警报器
LARM 可以为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
snoics-爬行动物
snoics -reptile 是用纯 Java 开发的。它是用于捕获 网站 图像的工具。您可以使用配置文件中提供的 URL 条目来传输所有可以通过浏览器 GET 的 网站。这种方式获取的所有资源都是本地抓取的,包括网页和各类文件,如图片、flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
网络收获
Web-Harvest 是一个 Java 开源 Web 数据提取工具。它可以采集指定的网页并从这些网页中提取有用的数据。Web-Harvest主要使用XSLT、XQuery、正则表达式等技术来实现text/xml的操作。
蜘蛛侠
Spiderpy 是一个基于 Python 编码的开源网络爬虫工具,允许用户采集文件和搜索网站,并具有可配置的界面。
蜘蛛网网络 Xoops Mod 团队
pider Web Network Xoops Mod 是 Xoops 下的一个模块,完全由 PHP 语言实现。
蜘蛛侠
Hispider 是一种快速、高性能的蜘蛛,速度快
严格来说只能是蜘蛛系统的框架。没有详细的要求。目前只能提取URL、URL重复、异步DNS解析、队列任务、支持N机分布式下载、支持网站定向下载((需要配置hispiderd.ini白名单)。
特点及用途:
基于unix/linux系统开发
异步 DNS 解析
URL 重新加权 查看全部
snoopy php网页抓取工具(主流的爬虫Nutch开发语言:与Nutch比较:二者均为Java开源框架)
主流爬虫
纳奇
开发语言:Java
主页:
介绍:
Apache的子项目之一是Lucene项目下的子项目。
Nutch 是一个完整的网络搜索引擎解决方案,基于 Lucene,类似于 Google。基于Hadoop的分布式处理模型保证了系统的性能。类似Eclipse的插件机制保证了系统可以定制,并且很容易集成到自己的应用程序中。之中。
拉宾
开发语言:C++
主页:
介绍:
Larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻人 Sébastien Ailleret 独立开发。larbin 的目的是能够跟踪页面的 URL 进行扩展抓取,最终为搜索引擎提供广泛的数据源。
larbin只是一个爬虫,也就是说larbin只爬网页,如何解析是用户自己做的。此外,larbin 没有提供有关如何将其存储在数据库中和构建索引的信息。
latbin 最初的设计也是基于设计简单但可配置性高的原则,所以我们可以看到,一个简单的 larbin 爬虫每天可以获取 500 万个网页,非常高效。
赫里特克斯
开发语言:Java
主页:
与纳奇相比:
两者都是 Java 开源框架。Heritrix 是 SourceForge 上的开源产品,Nutch 是 Apache 的子项目。他们都被称为网络爬虫。它们的实现原理基本一致:深度遍历网站在本地捕获这些资源,使用的方法是分析每个有效的URI网站,并提交一个Http请求得到相应的结果,生成本地文件和相应的日志信息等。
Heritrix 是一个“档案爬虫”——用于获取网站内容的完整、准确、深层副本。包括获取图片等非文字内容。抓取并存储相关内容。不拒绝任何内容,不对页面进行任何内容修改。重新抓取不会替换同一 URL 的前一次抓取。通过Web用户界面启动、监控和调整爬虫,可以灵活定义获取URL。
两者的区别:
Nutch 只获取和保存可索引的内容。Heritrix 接受这一切。力求保留页面的原创外观。
Nutch 可以修剪内容,或转换内容格式。
Nutch 以数据库优化的格式保存内容以备将来索引;刷新并替换旧内容。而 Heritrix 正在添加(追加)新的内容。
Nutch 是从命令行运行和控制的。Heritrix 有一个网页控制管理界面。
Nutch 的定制能力还不够强大,但现在已经改进了。Heritrix 可以控制更多的参数。
Heritrix 提供的功能没有 nutch 多,感觉就像从整个站点下载一样。既没有索引也没有解析,即使是重复爬取网址也不是很好。
Heritrix 功能强大,但是配置起来有点麻烦。
其他爬虫
网络学习
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
J-蜘蛛
J-Spider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外链接检查,分析网站的结构(可以创建一个网站@ > map),下载整个网站,也可以写一个JSpider插件扩展你需要的功能。
主轴
Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一组JSP标签库,让那些基于JSP的站点无需开发任何Java类就可以添加搜索功能。
蛛形纲动物
Arachnid:是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,可以开发一个简单的网络蜘蛛,可以在每一个网站中使用 解析一个页面后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
警报器
LARM 可以为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
snoics-爬行动物
snoics -reptile 是用纯 Java 开发的。它是用于捕获 网站 图像的工具。您可以使用配置文件中提供的 URL 条目来传输所有可以通过浏览器 GET 的 网站。这种方式获取的所有资源都是本地抓取的,包括网页和各类文件,如图片、flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
网络收获
Web-Harvest 是一个 Java 开源 Web 数据提取工具。它可以采集指定的网页并从这些网页中提取有用的数据。Web-Harvest主要使用XSLT、XQuery、正则表达式等技术来实现text/xml的操作。
蜘蛛侠
Spiderpy 是一个基于 Python 编码的开源网络爬虫工具,允许用户采集文件和搜索网站,并具有可配置的界面。
蜘蛛网网络 Xoops Mod 团队
pider Web Network Xoops Mod 是 Xoops 下的一个模块,完全由 PHP 语言实现。
蜘蛛侠
Hispider 是一种快速、高性能的蜘蛛,速度快
严格来说只能是蜘蛛系统的框架。没有详细的要求。目前只能提取URL、URL重复、异步DNS解析、队列任务、支持N机分布式下载、支持网站定向下载((需要配置hispiderd.ini白名单)。
特点及用途:
基于unix/linux系统开发
异步 DNS 解析
URL 重新加权
snoopy php网页抓取工具(Snoopy.class.php的特点和一些常见的用法介绍)
网站优化 • 优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2021-11-04 06:19
Snoopy 是一个非常强大的 PHP 类,可以用来模拟浏览器来完成获取网页内容和发送表单的任务。下面详细介绍Snoopy.class.php的特性和一些常用用法。
官方网站:(不能打开国外的网站并使用Skyline浏览器)
下载链接:
本站下载地址:PHP采集库Snoopy.class.php下载
以下是史努比的一些功能:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,表单fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展为高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持重定向时传递cookie
备注:Snoopy.class.php 需要 php4 或更高版本。既然是php类,就不需要扩展支持了。服务器不支持 curl 时的最佳选择。
下面介绍一些常用的类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI参数是被爬取的网页的URL地址,爬取的结果存放在$this->results中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy.class.php的特点和一些常见的用法介绍)
Snoopy 是一个非常强大的 PHP 类,可以用来模拟浏览器来完成获取网页内容和发送表单的任务。下面详细介绍Snoopy.class.php的特性和一些常用用法。
官方网站:(不能打开国外的网站并使用Skyline浏览器)
下载链接:
本站下载地址:PHP采集库Snoopy.class.php下载
以下是史努比的一些功能:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,表单fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展为高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持重定向时传递cookie
备注:Snoopy.class.php 需要 php4 或更高版本。既然是php类,就不需要扩展支持了。服务器不支持 curl 时的最佳选择。
下面介绍一些常用的类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI参数是被爬取的网页的URL地址,爬取的结果存放在$this->results中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(Snoopy()抓取网页的文本内容(去除HTML标签))
网站优化 • 优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2021-11-03 00:12
内容
什么是史努比?
Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
官方网站
史努比(Snoopy),一个可爱的品类~
你是怎么遇到的?
因为之前在Hulvlin看到@浪人写的乐讯内部信机,当时觉得有点意思,但是后来使用的时候,发现了一些问题。有时程序中的内信失败,所以我打算修改它。就这样,我认识了史努比。
史努比的一些特点
获取网页内容 fetch()
抓取网页的文本内容(去除HTML标签)fetchtext()
获取网页链接,表单 fetchlinks() fetchform()
支持代理主机
支持基本的用户名/密码验证
支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
支持浏览器重定向,控制重定向深度
可以将网页中的链接扩展为高质量的 url(默认)
提交数据并获取返回值
支持跟踪HTML框架
支持在重定向时传递 cookie
需要php4或以上。既然是php的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法1.fetch($uri)
这是用于抓取网页内容的方法。$URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2.fetchtext($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3.fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4.fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
5.提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
6.提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
7.提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性(括号内为默认值)
$host 连接的主机
$port 连接端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。(真的)
$expandlinks 是否完成所有链接以完成地址(true)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy()抓取网页的文本内容(去除HTML标签))
内容
什么是史努比?
Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
官方网站
史努比(Snoopy),一个可爱的品类~
你是怎么遇到的?
因为之前在Hulvlin看到@浪人写的乐讯内部信机,当时觉得有点意思,但是后来使用的时候,发现了一些问题。有时程序中的内信失败,所以我打算修改它。就这样,我认识了史努比。
史努比的一些特点
获取网页内容 fetch()
抓取网页的文本内容(去除HTML标签)fetchtext()
获取网页链接,表单 fetchlinks() fetchform()
支持代理主机
支持基本的用户名/密码验证
支持设置user_agent、referer(传入路由)、cookies和header内容(头文件)
支持浏览器重定向,控制重定向深度
可以将网页中的链接扩展为高质量的 url(默认)
提交数据并获取返回值
支持跟踪HTML框架
支持在重定向时传递 cookie
需要php4或以上。既然是php的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法1.fetch($uri)
这是用于抓取网页内容的方法。$URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2.fetchtext($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3.fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4.fetchlinks($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
5.提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
6.提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
7.提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性(括号内为默认值)
$host 连接的主机
$port 连接端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。(真的)
$expandlinks 是否完成所有链接以完成地址(true)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2021-10-31 23:05
)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是无法伪装的。相反,那些通过http头(可以防止代理)获取IP的人可以制作自己的IP。
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid,并记下sessionid和验证码值,然后使用snoopy锻造它。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p> 查看全部
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能
)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是无法伪装的。相反,那些通过http头(可以防止代理)获取IP的人可以制作自己的IP。
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid,并记下sessionid和验证码值,然后使用snoopy锻造它。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p>
snoopy php网页抓取工具(Snoopy类的下载地址和下载类下载方法汇总)
网站优化 • 优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2021-10-29 00:02
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页的内容并发送表单。
Snoopy 的正确运行需要您服务器的 PHP 版本在 4.0 以上,并且支持 PCRE(Perl Compatible Regular Expressions),以及基本的 LAMP 服务。史努比分类下载地址为:
一、史努比的一些特点:
1.抓取网页抓取的内容
2.获取网页的文本内容(去除HTML标签)fetchtext
3.获取网页链接,表单获取链接获取表单
4.支持代理主机
5.支持基本的用户名/密码验证
6.支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7.支持浏览器重定向,控制重定向深度
8.可以将网页中的链接扩展为高质量的url(默认)
9.提交数据并获取返回值
10.支持跟踪 HTML 框架
11. 支持重定向时cookie的传输,php4以上就可以了。既然是php类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
二、类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
三、类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(Snoopy类的下载地址和下载类下载方法汇总)
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页的内容并发送表单。
Snoopy 的正确运行需要您服务器的 PHP 版本在 4.0 以上,并且支持 PCRE(Perl Compatible Regular Expressions),以及基本的 LAMP 服务。史努比分类下载地址为:
一、史努比的一些特点:
1.抓取网页抓取的内容
2.获取网页的文本内容(去除HTML标签)fetchtext
3.获取网页链接,表单获取链接获取表单
4.支持代理主机
5.支持基本的用户名/密码验证
6.支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7.支持浏览器重定向,控制重定向深度
8.可以将网页中的链接扩展为高质量的url(默认)
9.提交数据并获取返回值
10.支持跟踪 HTML 框架
11. 支持重定向时cookie的传输,php4以上就可以了。既然是php类,就不需要扩展支持了,服务器不支持curl时的最佳选择。
二、类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
三、类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(:Snoopy是什么?的特点:方便抓取网页)
网站优化 • 优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2021-10-28 13:20
内容
[]
当你使用php并且想做一些采集任务时,那么你应该了解snoopy。
史努比是什么?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
史努比的一些特点:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置 user_agent、referer(传入路由)、cookies 和 header 内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
* 支持再次重定向时传递cookie
要求:
史努比需要 PHP 和 PCRE(Perl 兼容正则表达式),
应该是 PHP 3.0.9 及更高版本。对于读取超时支持,它需要
PHP 4 Beta 4 或更高版本。史努比是用 PHP 3.0.12.
开发和测试的
类方法:
获取($URI)
——————
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
—————-
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
———————-
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
——————————
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
—————-
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(:Snoopy是什么?的特点:方便抓取网页)
内容
[]
当你使用php并且想做一些采集任务时,那么你应该了解snoopy。
史努比是什么?
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。
史努比的一些特点:
* 方便抓取网页内容
* 方便抓取网页文字内容(去除HTML标签)
* 方便抓取网页链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置 user_agent、referer(传入路由)、cookies 和 header 内容(头文件)
* 支持浏览器转向,可控制转向深度
* 可以将网页中的链接扩展为高质量的url(默认)
* 方便提交数据和获取返回值
* 支持跟踪 HTML 框架(v0.92 添加)
* 支持再次重定向时传递 cookie(v0.92 增加)
* 支持再次重定向时传递cookie
要求:
史努比需要 PHP 和 PCRE(Perl 兼容正则表达式),
应该是 PHP 3.0.9 及更高版本。对于读取超时支持,它需要
PHP 4 Beta 4 或更高版本。史努比是用 PHP 3.0.12.
开发和测试的
类方法:
获取($URI)
——————
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
—————
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
—————-
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
———————-
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
——————————
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
—————-
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(PHP5.3.阅读全文PHP-FPM配置及使用总结(组图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-10-27 18:03
阿里云>云栖社区>主题图>P>php网页错误追踪
推荐活动:
更多优惠>
当前主题:php网页错误跟踪添加到采集夹
相关话题:
php网页错误跟踪相关博客查看更多博客
基于鼠标点击跟踪的用户点击行为...
作者:白占堂1001人浏览评论:08年前
想知道你的网站设计是否合理?您确定您的按钮和链接放置在它们应有的位置吗?您想确切地知道用户对页面感兴趣的位置吗?没有人能猜到用户喜欢什么。那些“我认为”和“我认为”都是无稽之谈。你有数据吗?前阵子看到车东的《基于鼠标点击的用户点跟踪》。
阅读全文
PHP性能调优---PHP-FPM配置及使用总结
作者:suboysugar1589 人浏览评论:04年前
PHP-FPM 配置和使用总结:php-FPM 是一个 PHP FastCGI 管理器。它实际上是一个 PHP 源代码的补丁。它旨在将 FastCGI 进程管理引入 PHP 软件包。我们必须将其修补到 PHP 源代码中。在代码中,然后编译它才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结
作者:科技小哥 1381人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结
作者:技术小哥 1372人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP snooping 介绍 采集 class snoopy
作者:thinkyoung708人浏览评论:06年前
PHP爬虫采集类snoopy介绍了一个PHP爬虫程序,写于2011年7月4日,已阅读10270次。谢谢参考或原服务器。花了 14.288 ms 进行了 2 次数据库查询,努力为您提供此页面。试试阅读模式?希望
阅读全文
snoopy(强大的PHP采集类)详细介绍
作者:suboysugar797人浏览评论:06年前
史努比是一个php类,用来模拟浏览器的功能。它可以获取网页内容并发送表格。可以用来开发一些采集程序和小偷程序。这个文章详细介绍了snoopy的使用。Snoopy 的一些功能: fetch 网页内容 fetch fetch 网页文字内容(去除 HTML 标签) fetch
阅读全文
linux网站 构建示例
作者:小科技达人1492人浏览评论:03年前
我们知道windows网站的搭建一般是:IIS+Asp+Sqlserver,linux网站的搭建是:Apache+php+Mysql。两者是有区别的,但是为什么我们很多门户网站网站都选择linux-apache+php+mysql?当然它的安全性,Ap
阅读全文
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)
作者:小科技专家1263人浏览评论:03年前
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12) 系统环境:centos 5.6 (x64)+Nginx 1.0.4+Mysql 5.@ > 5.12 + PHP 5.3.6 包裹存放位置/us
阅读全文 查看全部
snoopy php网页抓取工具(PHP5.3.阅读全文PHP-FPM配置及使用总结(组图))
阿里云>云栖社区>主题图>P>php网页错误追踪

推荐活动:
更多优惠>
当前主题:php网页错误跟踪添加到采集夹
相关话题:
php网页错误跟踪相关博客查看更多博客
基于鼠标点击跟踪的用户点击行为...


作者:白占堂1001人浏览评论:08年前
想知道你的网站设计是否合理?您确定您的按钮和链接放置在它们应有的位置吗?您想确切地知道用户对页面感兴趣的位置吗?没有人能猜到用户喜欢什么。那些“我认为”和“我认为”都是无稽之谈。你有数据吗?前阵子看到车东的《基于鼠标点击的用户点跟踪》。
阅读全文
PHP性能调优---PHP-FPM配置及使用总结


作者:suboysugar1589 人浏览评论:04年前
PHP-FPM 配置和使用总结:php-FPM 是一个 PHP FastCGI 管理器。它实际上是一个 PHP 源代码的补丁。它旨在将 FastCGI 进程管理引入 PHP 软件包。我们必须将其修补到 PHP 源代码中。在代码中,然后编译它才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结


作者:科技小哥 1381人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP-FPM 配置及使用总结


作者:技术小哥 1372人浏览评论:03年前
PHP-FPM配置及使用总结:PHP-FPM是一个PHP FastCGI管理器,它其实是一个PHP源代码的补丁,旨在将FastCGI进程管理引入到PHP软件包中,我们必须将其打到PHP源代码中,然后编译才可以使用。现在我们可以使用 PHP 5.3.
阅读全文
PHP snooping 介绍 采集 class snoopy


作者:thinkyoung708人浏览评论:06年前
PHP爬虫采集类snoopy介绍了一个PHP爬虫程序,写于2011年7月4日,已阅读10270次。谢谢参考或原服务器。花了 14.288 ms 进行了 2 次数据库查询,努力为您提供此页面。试试阅读模式?希望
阅读全文
snoopy(强大的PHP采集类)详细介绍


作者:suboysugar797人浏览评论:06年前
史努比是一个php类,用来模拟浏览器的功能。它可以获取网页内容并发送表格。可以用来开发一些采集程序和小偷程序。这个文章详细介绍了snoopy的使用。Snoopy 的一些功能: fetch 网页内容 fetch fetch 网页文字内容(去除 HTML 标签) fetch
阅读全文
linux网站 构建示例


作者:小科技达人1492人浏览评论:03年前
我们知道windows网站的搭建一般是:IIS+Asp+Sqlserver,linux网站的搭建是:Apache+php+Mysql。两者是有区别的,但是为什么我们很多门户网站网站都选择linux-apache+php+mysql?当然它的安全性,Ap
阅读全文
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12)


作者:小科技专家1263人浏览评论:03年前
CentOS下编译安装LNMP平台5.6(X64)(Nginx1.0.4+PHP5.3.6+Mysql5.5.12) 系统环境:centos 5.6 (x64)+Nginx 1.0.4+Mysql 5.@ > 5.12 + PHP 5.3.6 包裹存放位置/us
阅读全文
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
网站优化 • 优采云 发表了文章 • 0 个评论 • 86 次浏览 • 2021-10-26 14:04
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网: 查看全部
snoopy php网页抓取工具(模拟浏览器获取网页内容和发送表单的方法:Snoopy($URI))
Snoopy 是一个 php采集 类,用于模拟浏览器获取网页内容和发送表单。
以下是史努比的一些功能:
史努比类,方法:
获取($URI)
用于抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性:(括号内为默认值)
史努比官网:
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 61 次浏览 • 2021-10-26 14:02
爬取前记得将php.ini中的max_execution_time设置为较大的值,否则会报错。
一、使用Snoopy.class.php抓取页面
一个非常可爱的班级名称。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:
2)我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,稍后分析使用。<//p
pimg src='https://www.programminghunter.com/images/771/48/48304ba5e6f9fe08f3fa1abda7d326ab.gif' alt='复制代码'//p
ppre$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i = 10; $i++) {
$url = 'http://www.guahao.com/hospital/areahospitals?p=全国&pageNo=' . $i;
$snoopy-fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3)奇怪的是,返回的内容不是国家内容,而是上海相关内容
4)怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5)在请求中放入cookie的值,添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,DOM结构如下图所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ 工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性
$host
连接的主机
$端口
连接端口
$proxy_host
使用的代理主机,如果有的话
$proxy_port
使用的代理主机端口,如果有的话
$代理
用户代理伪装(史努比 v0.1)
$referer
访问信息,如果有的话
$cookies
Cookies,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。 (真实)
$expandlinks
是否补全链接地址(真)
$用户
经过身份验证的用户名(如果有)
$pass
经过身份验证的用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$maxlength
最长返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,该属性返回true(需要PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
爬取前记得将php.ini中的max_execution_time设置为较大的值,否则会报错。

一、使用Snoopy.class.php抓取页面

一个非常可爱的班级名称。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国各地医院的信息内容,如下图:

2)我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,稍后分析使用。<//p
pimg src='https://www.programminghunter.com/images/771/48/48304ba5e6f9fe08f3fa1abda7d326ab.gif' alt='复制代码'//p
ppre$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i = 10; $i++) {
$url = 'http://www.guahao.com/hospital/areahospitals?p=全国&pageNo=' . $i;
$snoopy-fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3)奇怪的是,返回的内容不是国家内容,而是上海相关内容

4)怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕

5)在请求中放入cookie的值,添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,DOM结构如下图所示:

使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ 工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
类属性
$host
连接的主机
$端口
连接端口
$proxy_host
使用的代理主机,如果有的话
$proxy_port
使用的代理主机端口,如果有的话
$代理
用户代理伪装(史努比 v0.1)
$referer
访问信息,如果有的话
$cookies
Cookies,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。 (真实)
$expandlinks
是否补全链接地址(真)
$用户
经过身份验证的用户名(如果有)
$pass
经过身份验证的用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$maxlength
最长返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,该属性返回true(需要PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(php类Snoopy的特点及特点分析-上海怡健医学)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-10-26 14:01
Snoopy 是一个 php 类,用于模拟浏览器的一些简单功能,可以获取网页内容、发送表单等操作。 Snoopy 需要您服务器的 PHP 版本 4 或更高版本才能正确运行,并且支持 PCRE(Perl Compatible Regular Expressions),并且支持所有基本的 LAMP 服务。既然是php类,不需要扩展支持,所以是服务器不支持curl时的最佳选择。
史努比的特点:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,形成fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展成高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架
11、支持重定向时传递cookie
史努比类下载链接:
史努比类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
史努比类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(php类Snoopy的特点及特点分析-上海怡健医学)
Snoopy 是一个 php 类,用于模拟浏览器的一些简单功能,可以获取网页内容、发送表单等操作。 Snoopy 需要您服务器的 PHP 版本 4 或更高版本才能正确运行,并且支持 PCRE(Perl Compatible Regular Expressions),并且支持所有基本的 LAMP 服务。既然是php类,不需要扩展支持,所以是服务器不支持curl时的最佳选择。
史努比的特点:
1、抓取网页抓取的内容
2、获取网页的文本内容(去除HTML标签)fetchtext
3、获取网页链接,形成fetchlinks fetchform
4、支持代理主机
5、支持基本用户名/密码验证
6、支持设置user_agent、referer(来源)、cookies和header内容(头文件)
7、支持浏览器重定向,控制重定向深度
8、可以将网页中的链接扩展成高质量的url(默认)
9、提交数据并获取返回值
10、支持跟踪HTML框架
11、支持重定向时传递cookie
史努比类下载链接:
史努比类方法:
获取($URI)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
史努比类属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies,如果有的话
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
网站优化 • 优采云 发表了文章 • 0 个评论 • 82 次浏览 • 2021-10-21 00:01
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院的信息内容,如下图:
2) 我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。
$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';
3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。
for($i = 1; $i attr('href')); //医院详情
}
}
3)根据读取到的URL地址列表,抓取指定页面。
$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}
FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态 查看全部
snoopy php网页抓取工具(php.ini中的max_execution设置设置的大点软件)
在进行爬取之前,记得把php.ini中的max_execution_time设置为较大的值,否则会报错。
一、 使用 Snoopy.class.php 抓取页面
一个很可爱的类名。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等等。
1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院的信息内容,如下图:
2) 我自然是复制URL地址,使用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建一个html文件,供以后分析使用。

$snoopy=new Snoopy();
//医院list页面
for($i = 1; $i fetch($url);
file_put_contents("web/page/$i.html", $snoopy->results);
}
echo 'success';

3) 奇怪的是,返回的内容不是国家内容,而是与上海相关的内容。
4) 怀疑里面可能设置了cookie,然后用firebug查看了一下,果然有惊人的内幕
5) 在请求中放入cookie的值,并添加设置语句$snoopy->cookies["_area_"],情况大不相同,顺利返回国家信息。
$snoopy=new Snoopy();
//医院list页面
$snoopy->cookies["_area_"] = '{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限"}';
for($i = 1; $i results;
}
2)使用phpQuery获取节点信息,如下DOM结构所示:
使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

for($i = 1; $i attr('href')); //医院详情
}
}

3)根据读取到的URL地址列表,抓取指定页面。

$detailIndex = 1;
for($i = 1; $i results);
$detailIndex++;
}
}

FQ工具下载:
克服障碍.rar
演示下载:
史努比类的一些说明:
类方法
获取($URI)
这是用于抓取网页内容的方法。
$URI 参数是被爬取的网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
获取文本($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
获取链接($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
提交($URI,$formvars)
此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。
提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,并且只返回登录后网页中的文本内容。
提交链接($URI)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接将自动完成并转换为完整的 URL。
类属性
$host
连接主机
$端口
连接端口
$proxy_host
使用的代理主机(如果有)
$proxy_port
使用的代理主机端口(如果有)
$代理
用户代理伪装(史努比 v0.1)
$referer
信息,如果有
$cookies
饼干,如果有的话
$rawheaders
其他标题信息,如果有的话
$maxredirs
最大重定向次数,0=不允许 (5)
$offsiteok
是否允许异地重定向。(真的)
$expandlinks
是否完成所有链接完成地址(true)
$用户
身份验证用户名(如果有)
$pass
身份验证用户名(如果有)
$接受
http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$错误
在哪里报告错误,如果有的话
$response_code
服务器返回的响应码
$headers
服务器返回的头部信息
$最大长度
最大返回数据长度
$read_timeout
读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示没有超时
$timed_out
如果读取操作超时,则此属性返回 true(需要 PHP 4 Beta 4+)
$maxframes
允许跟踪的最大帧数
$状态
snoopy php网页抓取工具(phpsnoopy用法:Snoopy($URI)类方法及示例)
网站优化 • 优采云 发表了文章 • 0 个评论 • 83 次浏览 • 2021-10-20 12:07
php snoopy 用法:1、[fetch($URI)] 抓取网页内容; 2、[fetchtext($URI)] 删除 HTML 标签和其他无关数据; 3、【fetchform($URI)】返回网页中表单的内容。
本教程运行环境:windows7系统,PHP5.6版本,DELL G3电脑。
php snoopy 用法:
史努比类方法和示例:
1、fetch($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2、fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3、fetchform($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4、fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
5、提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6、提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7、提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies(如果有)
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话 查看全部
snoopy php网页抓取工具(phpsnoopy用法:Snoopy($URI)类方法及示例)
php snoopy 用法:1、[fetch($URI)] 抓取网页内容; 2、[fetchtext($URI)] 删除 HTML 标签和其他无关数据; 3、【fetchform($URI)】返回网页中表单的内容。

本教程运行环境:windows7系统,PHP5.6版本,DELL G3电脑。
php snoopy 用法:
史努比类方法和示例:
1、fetch($URI)
这是用来抓取网页内容的方法。
$URI 参数是被抓取网页的 URL 地址。
获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2、fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3、fetchform($URI)
该方法与fetch()类似,唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4、fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
5、提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6、提交文本($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7、提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。
默认情况下,相对链接会自动补全并转换成完整的网址。
Snoopy采集Class 属性:(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装(史努比 v0.1)
$referer 传入信息,如果有的话
$cookies cookies(如果有)
$rawheaders 其他头信息,如果有的话
$maxredirs 最大重定向次数,0=不允许 (5)
$offsiteok 是否允许异地重定向。 (真实)
$expandlinks 是否完成所有链接以完成地址(真实)
$user 认证用户名,如果有的话
$pass 认证用户名,如果有的话
snoopy php网页抓取工具(作者MonteOhrt类版本V2.0三、类的特性)
网站优化 • 优采云 发表了文章 • 0 个评论 • 50 次浏览 • 2021-10-15 06:13
Monte Ohrt 类的作者
V2.0 类的版本
三、 类的特点
回到书中,我们先了解一下它的特点,掌握它的特点对我们理解它有很大的帮助!
1、方便抓取网页的内容 fetch
2、方便抓取网页的文字(去掉HTML代码)fetchtext
3、方便抓取网页的链接 fetchlinks
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
四、类方法
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,$formvars)
本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。默认情况下,相对链接将自动补全,转换成完整的URL。
五、 类属性(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装 (Snoopy v0.1)
$referer 来路信息,如果有的话
$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、fetch 获取网页内容,示例
源代码如下:
<p> 查看全部
snoopy php网页抓取工具(作者MonteOhrt类版本V2.0三、类的特性)
Monte Ohrt 类的作者
V2.0 类的版本
三、 类的特点
回到书中,我们先了解一下它的特点,掌握它的特点对我们理解它有很大的帮助!
1、方便抓取网页的内容 fetch
2、方便抓取网页的文字(去掉HTML代码)fetchtext
3、方便抓取网页的链接 fetchlinks
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
四、类方法
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,$formvars)
本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。默认情况下,相对链接将自动补全,转换成完整的URL。
五、 类属性(括号内为默认值)
$host 连接的主机
$port 连接的端口
$proxy_host 使用的代理主机,如果有的话
$proxy_port 使用的代理主机端口,如果有的话
$agent 用户代理伪装 (Snoopy v0.1)
$referer 来路信息,如果有的话
$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、fetch 获取网页内容,示例
源代码如下:
<p>
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能)
网站优化 • 优采云 发表了文章 • 0 个评论 • 61 次浏览 • 2021-10-13 08:23
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid。同时记下sessionid和验证码值,然后用snoopy伪造。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p> 查看全部
snoopy php网页抓取工具(php一个Snoopy的一些功能特点及功能)
Snoopy 是一个 php 类,用来模仿网页浏览器的功能,它可以完成获取网页内容和发送表单的任务。官方网站
史努比的一些特点:
需要 php4 或更高版本。既然是PHP的一类,就不需要扩展支持,服务器不支持curl时的最佳选择。
类方法
1. fetch($uri)
这是用来抓取网页内容的方法。 $URI 参数是被爬取的网页的 URL 地址。获取的结果存储在 $this->results 中。
如果你正在抓取一个帧,史努比会跟踪每一帧并将其存储在一个数组中,然后将其存储在 $this->results 中。
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
演示
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://www.nowamagic.net/librarys/veda/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://www.4wei.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://www.4wei.cn"))
{
echo "".htmlspecialchars($snoopy->results)."
n";}elseecho"获取文档时出错:".$snoopy->error."n";
获取指定url的内容:
表单提交:
既然已经提交了表单,就可以做很多事情了。接下来我们伪装ip,伪装浏览器:
原来我们可以伪装session和浏览器,伪装ip,哈哈可以做很多事情。比如带验证码,验证ip投票,可以连续投票。
ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何验证验证码,简单说一下:首先,用普通浏览器查看页面,找到验证码对应的sessionid。同时记下sessionid和验证码值,然后用snoopy伪造。
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
有时候我们可能需要锻造更多的东西,史努比完全为我们想到了:
完整演示
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.baidu.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."n";
// print the headers:
print "<b>Headers:
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
}
else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
用史努比类完成一张简单的图片采集:
<p>
snoopy php网页抓取工具(603999.SH读者传媒:2017年年度报告获取网页pdf下载地址 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 110 次浏览 • 2021-10-13 00:11
)
任务:批量抓取网页pdf文件
有一个 excel,其中有数千个指向 pdf 下载链接的网页地址。现在需要批量抓取这些网页地址中的pdf文件。
Python环境:
蟒蛇3
打开pyxl
Beautifulsoup4 读取excel,获取网页地址
使用 openpyxl 库读取 .xslx 文件;
(我尝试使用xlrd库读取.xsl文件,但是无法获取超链接)
安装 openpyxl
pip install openpyxl
提取 xslx 文件中的超链接
示例文件结构
公告日期 证券代码公告名称
2018-04-20
603999.SH
读者媒体:2017年年报
2018-04-28
603998.SH
方盛药业:2017年年报
def readxlsx(path):
workbook = openpyxl.load_workbook(path)
Data_sheet = workbook.get_sheet_by_name('sheet1')
rowNum = Data_sheet.max_row #读取最大行数
c = 3 # 第三列是所需要提取的数据
server = 'http://news.windin.com/ns/'
for row in range(1, rowNum + 1):
link = Data_sheet.cell(row=row, column=c).value
url = re.split(r'\"', link)[1]
print(url)
downEachPdf(url, server)
获取网页pdf下载地址
进入阅读媒体:2017年年报,可以在Chrome浏览器中按F12查看网页源码,以下是源码截取:
<p>附件: 查看全部
snoopy php网页抓取工具(603999.SH读者传媒:2017年年度报告获取网页pdf下载地址
)
任务:批量抓取网页pdf文件
有一个 excel,其中有数千个指向 pdf 下载链接的网页地址。现在需要批量抓取这些网页地址中的pdf文件。
Python环境:
蟒蛇3
打开pyxl
Beautifulsoup4 读取excel,获取网页地址
使用 openpyxl 库读取 .xslx 文件;
(我尝试使用xlrd库读取.xsl文件,但是无法获取超链接)
安装 openpyxl
pip install openpyxl
提取 xslx 文件中的超链接
示例文件结构
公告日期 证券代码公告名称
2018-04-20
603999.SH
读者媒体:2017年年报
2018-04-28
603998.SH
方盛药业:2017年年报
def readxlsx(path):
workbook = openpyxl.load_workbook(path)
Data_sheet = workbook.get_sheet_by_name('sheet1')
rowNum = Data_sheet.max_row #读取最大行数
c = 3 # 第三列是所需要提取的数据
server = 'http://news.windin.com/ns/'
for row in range(1, rowNum + 1):
link = Data_sheet.cell(row=row, column=c).value
url = re.split(r'\"', link)[1]
print(url)
downEachPdf(url, server)
获取网页pdf下载地址
进入阅读媒体:2017年年报,可以在Chrome浏览器中按F12查看网页源码,以下是源码截取:
<p>附件:
snoopy php网页抓取工具(Snoopy($URI)功能特点及去除和发送表单)
网站优化 • 优采云 发表了文章 • 0 个评论 • 67 次浏览 • 2021-10-10 23:13
简介:Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。 **官网:/** ...史努比的一些功能:获取网页内容 fetch() fetch...
<p>引言:Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
**官方网址:http://snoopy.sourceforge.net/**
简单一句话表达:"Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单。",补一下脑。
Snoopy的一些功能特点:
抓取网页的内容 fetch()抓取网页的文本内容 (去除HTML标签) fetchtext()抓取网页的链接,表单 fetchlinks() fetchform()支持代理主机支持基本的用户名/密码验证支持设置 user_agent, referer(来路), cookies 和 header content(头文件)支持浏览器重定向,并能控制重定向深度能把网页中的链接扩展成高质量的url(默认)提交数据并且获取返回值支持跟踪HTML框架支持重定向的时候传递cookies
注意:PHP容器要求php4以上就可以。由于本身是php一个类,无需扩支持,它是服务器不支持curl时候的最好选择。
Come on,跟着SuperDo一起来了解一下Snoopy的使用吧。。。
类方法
下面,我们为大家准备了Snoopy常用的一些类方法。
1. fetch($uri)[b]
这是为了抓取网页的内容而使用的方法。$URI参数是被抓取网页的URL地址。抓取的结果被存储在 $this->results 中。
如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。
</p>
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性(括号内为默认值)
基本示例
通用示例:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://do.org.cn/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://do.org.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://do.org.cn")) {
echo "".htmlspecialchars($snoopy->results)."
n";} else {echo "error fetching document: ".$snoopy->error."n";}
获取指定url的内容:
表单提交:
伪装ip,伪装浏览器:
详细说明:
原来我们可以伪装会话,伪装浏览器,伪装ip,(旁白:猥亵笑HOHO)我们可以做很多事情。
例如:用验证码投票,验证ip,可以连续投票。
PS:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何骗取验证码,简单说一下:
操作方法:先用普通浏览器查看页面,找到验证码对应的sessionid,记下sessionid和验证码的值,然后用snoopy伪造
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
制作其他属性:
两个综合例子
马克,有兴趣的可以看看。
示例 1:
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://do.org.cn/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.google.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."
n";
// print the headers:
print "<b>Headers:[/b]
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
} else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
示例 2:(图片采集)
<p> 查看全部
snoopy php网页抓取工具(Snoopy($URI)功能特点及去除和发送表单)
简介:Snoopy是一个php类,用来模仿网页浏览器的功能,可以完成获取网页内容和发送表单的任务。 **官网:/** ...史努比的一些功能:获取网页内容 fetch() fetch...
<p>引言:Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
**官方网址:http://snoopy.sourceforge.net/**
简单一句话表达:"Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单。",补一下脑。
Snoopy的一些功能特点:
抓取网页的内容 fetch()抓取网页的文本内容 (去除HTML标签) fetchtext()抓取网页的链接,表单 fetchlinks() fetchform()支持代理主机支持基本的用户名/密码验证支持设置 user_agent, referer(来路), cookies 和 header content(头文件)支持浏览器重定向,并能控制重定向深度能把网页中的链接扩展成高质量的url(默认)提交数据并且获取返回值支持跟踪HTML框架支持重定向的时候传递cookies
注意:PHP容器要求php4以上就可以。由于本身是php一个类,无需扩支持,它是服务器不支持curl时候的最好选择。
Come on,跟着SuperDo一起来了解一下Snoopy的使用吧。。。

类方法
下面,我们为大家准备了Snoopy常用的一些类方法。
1. fetch($uri)[b]
这是为了抓取网页的内容而使用的方法。$URI参数是被抓取网页的URL地址。抓取的结果被存储在 $this->results 中。
如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。
</p>
2. fetchtext($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的文本内容。
3. fetchform($URI)
该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。
4. fetchlinks($URI)
这个方法和fetch()类似,唯一不同的是这个方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
5. 提交($URI,$formvars)
此方法向$URL 指定的链接地址发送确认表单。 $formvars 是一个存储表单参数的数组。
6. submittext($URI,$formvars)
该方法与submit()类似,唯一不同的是,该方法会去除HTML标签等无关数据,登录后只返回网页中的文本内容。
7. 提交链接($URI)
这个方法类似于submit()。唯一不同的是,该方法会去除HTML标签等无关数据,只返回网页中的链接。默认情况下,相对链接会自动补全并转换成完整的网址。
类属性(括号内为默认值)
基本示例
通用示例:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "http://do.org.cn/";
$snoopy->proxy_port = "80";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http://do.org.cn";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "no-cache";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetchtext("http://do.org.cn")) {
echo "".htmlspecialchars($snoopy->results)."
n";} else {echo "error fetching document: ".$snoopy->error."n";}
获取指定url的内容:
表单提交:
伪装ip,伪装浏览器:
详细说明:
原来我们可以伪装会话,伪装浏览器,伪装ip,(旁白:猥亵笑HOHO)我们可以做很多事情。
例如:用验证码投票,验证ip,可以连续投票。
PS:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,但是通过http头获取IP的(可以防止代理的那种)可以自己做IP .
关于如何骗取验证码,简单说一下:
操作方法:先用普通浏览器查看页面,找到验证码对应的sessionid,记下sessionid和验证码的值,然后用snoopy伪造
原理:因为是同一个sessionid,所以得到的验证码和第一次输入的一样。
制作其他属性:
两个综合例子
马克,有兴趣的可以看看。
示例 1:
/**
* You need the snoopy.class.php from
* http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://do.org.cn/";
// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// fetch the text of the website www.google.com:
if($snoopy->fetchtext("http://www.google.com")){
// other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
// response code:
print "response code: ".$snoopy->response_code."
n";
// print the headers:
print "<b>Headers:[/b]
";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."
n";
}
print "
n";
// print the texts of the website:
print htmlspecialchars($snoopy->results)."n";
} else {
print "Snoopy: error while fetching document: ".$snoopy->error."n";
}
示例 2:(图片采集)
<p>