php抓取网页snoopy(php一个类使用教程的使用方法及示例:)

优采云 发布时间: 2021-11-05 07:00

  php抓取网页snoopy(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 传入信息,如果有的话

  $cookies cookies,如果有的话

  $rawheaders 其他头信息,如果有的话

  $maxredirs 最大重定向次数,0=不允许 (5)

  $offsiteok 是否ornottoallowredirectsoff-site.(true)

  $expandlinks 是否完成所有链接以完成地址(真实)

  $user 认证用户名,如果有的话

  $pass 认证用户名,如果有的话

  $accept http 接受类型 (image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,*/*)

  $error 在哪里报告,如果有的话

  $response_code 服务器返回的响应码

  服务器返回的$headers头信息

  $maxlength 最长返回数据长度

  $read_timeout 读操作超时(需要PHP4Beta4+)设置为0表示无超时

  $timed_out 如果读操作超时,该属性返回真(需要PHP4Beta4+)

  $maxframes 允许跟踪的最大帧数

  $status 抓取到的http状态

  $temp_dir Web 服务器可以写入的临时文件目录(/tmp)

  $curl_path cURLbinary 目录,如果没有 cURLbinary,设置为 false

  以下是一个例子:

  include "Snoopy.class.php";

$snoopy = new Snoopy;

$snoopy->proxy_host = "http://www.9it.me";

$snoopy->proxy_port = "80";

$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";

$snoopy->referer = "http://www.9it.me";

$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.9it.me"))

{

echo "".htmlspecialchars($snoopy->results)."

  \n";} else echo "error fetching document: ".$snoopy->error."\n";

  获取指定url的内容

  表单提交

  既然已经提交了表单,就可以做很多事情了。接下来,让我们伪装ip,伪装浏览器。

  伪装浏览器

  原来我们可以假装session假装浏览器,假装ip,哈哈可以做很多事情。

  比如用验证码,验证ip投票,可以连续投票。

  ps:这里伪装ip其实就是伪装http头,所以一般通过REMOTE_ADDR获取的IP是不能伪装的,

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线