谈PHP的snoopy类

上一篇 / 下一篇  2012-06-19 14:51:29 / 个人分类:others

  今天无意中知道了PHP本身有一个snoopy的类,使用的请求的方式为parse_url,而非curl的方式,试用了一把(惭愧啊,今天才知道这个类,早点知道,做网络爬虫就没那么苦逼啦)

直接上代码来演示一个简单的demo(获取example.com上面所有的url连接):
<?php
require 'E:\PHP install files\Snoopy-1.2.4\Snoopy-1.2.4\Snoopy.class.php';

$snoopy = new Snoopy() or die("snoopy is failed");


$snoopy->fetchlinks("http://example.com");

$content[] = $snoopy->results;


foreach ($content as $tmp){
foreach ($tmp as $value){
echo $value;
echo "<br />";
}
}
?>
第一句的require是引入Snoopy类
第二句实例化一个Snoopy的对象,如果new失败则显示die后面的内容;
第三句使用Snoopy的fetchlinks方法获取指定的url的所有链接,返回的是一个bool形,表示获取成功or失败;
第四句使用Snoopy的results的方法将获取到的links进行抽取,reults返回的为一个array的类型;
剩下来的就是使用foreach对数组进行对数组的遍历,取出value值,进行前台的显示;

Snoopy类能够实现的功能还很多,例如:
1、方便抓取网页的内容
2、方便抓取网页的文字(去掉HTML代码)
3、方便抓取网页的链接
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
有兴趣的可以直接查阅相关资料~

TAG:

 

评分:0

我来说两句

Open Toolbar