0

0

PHP采撷利器:Snoopy 试用心得

php中文网

php中文网

发布时间:2016-06-13 10:53:01

|

1070人浏览过

|

来源于php中文网

原创

PHP采集利器:Snoopy 试用心得

?

Snoopy是什么? (下载snoopy
Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
Snoopy的一些特点:
* 方便抓取网页的内容
* 方便抓取网页的文本内容 (去除HTML标签)
* 方便抓取网页的链接
* 支持代理主机
* 支持基本的用户名/密码验证
* 支持设置 user_agent, referer(来路), cookies 和 header content(头文件)
* 支持浏览器转向,并能控制转向深度
* 能把网页中的链接扩展成高质量的url(默认)
* 方便提交数据并且获取返回值
* 支持跟踪HTML框架(v0.92增加)
* 支持再转向的时候传递cookies (v0.92增加)
?
要想了解的更深入些,你自己Google一下吧。下面就给几个简单的例子:
1获取指定url内容
PHP代码
$url = "http://www.taoav.com";   include("snoopy.php");   $snoopy = new Snoopy;   $snoopy->fetch($url); //获取所有内容   echo $snoopy->results; //显示结果   $snoopy->fetchtext //获取文本内容(去掉html代码)   $snoopy->fetchlinks //获取链接   $snoopy->fetchform //获取表单   
2 表单提交
PHP代码
$formvars["username"] = "admin";   $formvars["pwd"] = "admin";   $action = "http://www.taoav.com";//表单提交地址   $snoopy->submit($action,$formvars);//$formvars为提交的数组   echo $snoopy->results; //获取表单提交后的 返回的结果     $snoopy->submittext; //提交后只返回 去除html的 文本   $snoopy->submitlinks;//提交后只返回 链接   
?既然已经提交的表单 那就可以做很多事情 接下来我们来伪装ip,伪装浏览器
3 伪装
PHP代码
$formvars["username"] = "admin";   $formvars["pwd"] = "admin";   $action = "http://www.taoav.com";   include "snoopy.php";   $snoopy = new Snoopy;   $snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid   $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //伪装浏览器   $snoopy->referer = "http://www.only4.cn"; //伪装来源页地址 http_referer   $snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息   $snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip   $snoopy->submit($action,$formvars);   echo $snoopy->results; 
?

  1. 原来我们可以伪装session 伪装浏览器 ,伪装ip, haha 可以做很多事情了。
例如 带验证码,验证ip 投票, 可以不停的投。
ps:这里伪装ip ,其实是伪装http头, 所以一般的通过 REMOTE_ADDR 获取的ip是伪装不了,
反而那些通过http头来获取ip的(可以防止代理的那种) 就可以自己来制造ip。
关于如何验证码 ,简单说下:
首先用普通的浏览器, 查看页面 , 找到验证码所对应的sessionid,
同时记下sessionid和验证码值,
接下来就用snoopy去伪造 。
原理:由于是同一个sessionid 所以取得的验证码和第一次输入的是一样的。
4 有时我们可能需要伪造更多的东西,snoopy完全为我们想到了
PHP代码
$snoopy->proxy_host = "www.only4.cn";   $snoopy->proxy_port = "8080"; //使用代理      $snoopy->maxredirs = 2; //重定向次数     $snoopy->expandlinks = true; //是否补全链接 在采集的时候经常用到   // 例如链接为 /images/taoav.gif 可改为它的全链接 http://www.taoav.com/images/taoav.gif,这个地方其实可以在最后输出的时候用ereg_replace函数自己替换 $snoopy->maxframes = 5 //允许的最大框架数      //注意抓取框架的时候 $snoopy->results 返回的是一个数组    $snoopy->error //返回报错信息  
?上面的基本用法了解了,下面我就实例演示一次:
PHP代码?
agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1";//这项是浏览器信息,前面你用什么浏览器查看cookie,就用那个浏览器的信息(ps:$_SERVER可以查看到浏览器的信息)    $snoopy->referer = "http://bbs.phpchina.com/index.php";   $snoopy->expandlinks = true;   $snoopy->rawheaders["COOKIE"]="__utmz=17229162.1227682761.29.7.utmccn=(referral)|utmcsr=phpchina.com|utmcct=/html/index.html|utmcmd=referral; cdbphpchina_smile=1D2D0D1; cdbphpchina_cookietime=2592000; __utma=233700831.1562900865.1227113506.1229613449.1231233266.16; __utmz=233700831.1231233266.16.8.utmccn=(referral)|utmcsr=localhost:8080|utmcct=/test3.php|utmcmd=referral; __utma=17229162.1877703507.1227113568.1231228465.1231233160.58; uchome_loginuser=sinopf; xscdb_cookietime=2592000; __utmc=17229162; __utmb=17229162; cdbphpchina_sid=EX5w1V; __utmc=233700831; cdbphpchina_visitedfid=17; cdbphpchinaO766uPYGK6OWZaYlvHSuzJIP22VpwEMGnPQAuWCFL9Fd6CHp2e%2FKw0x4bKz0N9lGk; xscdb_auth=8106rAyhKpQL49eMs%2FyhLBf3C6ClZ%2B2idSk4bExJwbQr%2BHSZrVKgqPOttHVr%2B6KLPg3DtWpTMUI4ttqNNVpukUj6ElM; cdbphpchina_onlineusernum=3721";      $snoopy->fetch("http://bbs.phpchina.com/forum-17-1.html"); $n=ereg_replace("href=\"","href=\"http://bbs.phpchina.com/",$snoopy->results );   echo ereg_replace("src=\"","src=\"http://bbs.phpchina.com/",$n);   ?>  
?这是模拟登陆PHPCHINA论坛的过程,首先要查看自己浏览器的信
息:echo?var_dump($_SERVER);这句代码可以看到自己浏览器的信息,把?
$_SERVER['HTTP_USER_AGENT']后边的内容复制下来,粘在$snoopy->agent的地方,然后就是要查看自己的
COOKIE了,用自己在论坛的账号登陆论坛后,在浏览器地址栏里输入
javascript:document.write(document.cookie),回车,就可以看到自己的cookie信息,复制粘贴
到$snoopy->rawheaders["COOKIE"]=的后边。(我的cookie信息为了安全起见已经删除了一段内容)


网站建设响应式网站模板5.6
网站建设响应式网站模板5.6

网站建设响应式网站模板源码是以cmseasy为核心进行开发的cmseasy模板,软件可免费使用,模板附带测试数据!网站建设响应式网站模板源码特点:整体采用浅色宽屏设计,简洁大气,电脑手机自适应布局,大方美观,功能齐全,值得推荐的一款模板,每个页面精心设计,美观大方,兼容各大浏览器;所有代码经过SEO优化,使网站更利于搜索引擎排名,是您做网站建设响应式网站模板的明确选择。无论是在电脑、平板、手机上都

下载

立即学习PHP免费学习笔记(深入)”;

然后再注意:


立即学习PHP免费学习笔记(深入)”;

# $n=ereg_replace("href=\"","href=\"http://bbs.phpchina.com/",$snoopy->results );?


立即学习PHP免费学习笔记(深入)”;

# echo ereg_replace("src=\"","src=\"http://bbs.phpchina.com/",$n);


立即学习PHP免费学习笔记(深入)”;

这两句代码,因为采集到的内容所有的HTML源码地址都是相对链接,所以要替换成绝对链接,这样就可以引用论坛的图片和css样式了。
转载:http://zzdboy1616.blog.163.com/blog/static/430670762009213111712876/?

?

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

0

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

6

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

16

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

3

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

1

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

php如何本地部署教程
php如何本地部署教程

想在本地搭建PHP开发环境?本合集提供2025最新PHP本地部署详细教程,涵盖Windows、macOS、Linux三大系统,手把手教你安装Apache/Nginx、MySQL、PHP(AMP/LAMP/WAMP集成环境),配置虚拟主机、开启扩展、调试错误等关键步骤。无需联网依赖,快速构建高效本地开发环境,新手也能轻松上手!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 1.9万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号