• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP采撷利器snoopy应用详解

php 搞代码 3年前 (2022-01-24) 21次浏览 已收录 0个评论

PHP采集利器snoopy应用详解

官方网站http://snoop本@文来源gao($daima.com搞@代@#码(网5搞gaodaima代码y.sourceforge.net/

下面是它的一些特征:

1、方便抓取网页的内容

2、方便抓取网页的文字(去掉HTML代码)

3、方便抓取网页的链接

4、支持代理主机

5、支持基本的用户/密码认证模式

6、支持自定义用户agent,referer,cookies和header内容

7、支持浏览器转向,并能控制转向深度

8、能把网页中的链接扩展成高质量的url(默认)

9、方便提交数据并且获取返回值

10、支持跟踪HTML框架(v0.92增加)

11、支持再转向的时候传递cookies

下面是简单的例子,比如说我们抓取我的blog的文字

?

  1. <?
  2. include?”Snoopy.class.php”;
  3. $snoopy?=?new?Snoopy;
  4. $snoopy->fetchtext(“http://www.phpobject.net/blog”);
  5. echo?$snoopy->results;
  6. ?>
  7. ^_^,不错把,在比如抓取链接
  8. <?
  9. include?”Snoopy.class.php”;
  10. $snoopy?=?new?Snoopy;
  11. $snoopy->fetchlinks(“http://www.phpobject.net/blog”);
  12. print_r($snoopy->results);
  13. ?>
  14. --------------------
  15. <?phpinclude(“snoopy.class.php”);
  16. $snoopy?=?new?Snoopy;
  17. //?need?an?proxy?://
  18. $snoopy->proxy_host?=?”my.proxy.host”;
  19. $snoopy->proxy_port?=?”8080″;
  20. //?set?browser?and?referer:
  21. $snoopy->agent?=?”Mozilla/4.0?(compatible;?MSIE?6.0;?Windows?NT?5.1)”;
  22. $snoopy->referer?=?”http://www.jonasjohn.de/”;
  23. //?set?some?cookies:
  24. $snoopy->cookies[“SessionID”]?=?’238472834723489′;
  25. $snoopy->cookies[“favoriteColor”]?=?”blue”;
  26. //?set?an?raw-header:
  27. $snoopy->rawheaders[“Pragma”]?=?”no-cache”;
  28. //?set?some?internal?variables:
  29. $snoopy->maxredirs?=?2;
  30. $snoopy->offsiteok?=?false;
  31. $snoopy->expandlinks?=?false;
  32. //?set?username?and?password?(optional)//
  33. $snoopy->user?=?”joe”;
  34. snoopy->pass?=?”bloe”;
  35. //?fetch?the?text?of?the?website?www.google.com:
  36. if($snoopy->fetchtext(“http://www.google.com”))
  37. {?????//?other?methods:?fetch,?fetchform,?fetchlinks,?submittext?and?submitlinks
  38. ????????//?response?code:????print?”response?code:?”.$snoopy->response_code.”
    \n”;
  39. ????????//?print?the?headers:????????print?”Headers:
    ”;
  40. ????while(list($key,$val)?=?each($snoopy->headers))
  41. ????{
  42. ???????print?$key.”:?”.$val.”
    \n”;
  43. ????}
  44. ?????print?”
    \n”;
  45. ????????//?print?the?texts?of?the?website:????print?”
    ”.htmlspecialchars($snoopy->results).”

    \n”;

  46. ????}
  47. ????else
  48. ?????{????print?”Snoopy:?error?while?fetching?document:?”.$snoopy->error.”\n”;
  49. }
  50. ?>

--------------------------------

首先,我们要获取到登陆需要发送什么字段,目标地址是什么。这里我们使用snoopy的fetchform来实现。

?

  1. <?
  2. include?”Snoopy.class.php”;
  3. $snoopy?=?new?Snoopy;
  4. $snoopy->fetchform(“http://www.phpx.com/happy/logging.php?action=login”);
  5. print?$snoopy->results;
  6. ?>

当然你也可以直接查看http://www.phpx.com/happy/…的源代码来实现,不过这样更加方便把。这里,我们获取到目标和提交的数据,下一步就可以实现模拟登陆了。代码如下:

  1. <?
  2. include?”Snoopy.class.php”;
  3. $snoopy?=?new?Snoopy;
  4. $submit_url?=?”http://www.phpx.com/happy/logging.php?action=login”;
  5. ?????$submit_vars[“loginmode”]?=?”normal”;
  6. ?????$submit_vars[“styleid”]?=?”1″;
  7. ?????$submit_vars[“cookietime”]?=?”315360000″;
  8. ?????$submit_vars[“loginfield”]?=?”username”;
  9. ?????$submit_vars[“username”]?=?”********”;?//你的用户名
  10. ?????$submit_vars[“password”]?=?”*******”;???//你的密码
  11. ?????$submit_vars[“questionid”]?=?”0″;
  12. ?????$submit_vars[“answer”]?=?””;
  13. ?????$submit_vars[“loginsubmit”]?=?”提? ?交”;
  14. ?????$snoopy->submit($submit_url,$submit_vars);
  15. ?????print?$snoopy->results;
  16. ?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP采撷利器snoopy应用详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址