﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>尘缘的博客 &#187; Snoopy</title>
	<atom:link href="http://www.4wei.cn/archives/category/snoopy/feed" rel="self" type="application/rss+xml" />
	<link>http://www.4wei.cn</link>
	<description>PHP+Redis+ThinkPHP+LocoySpider+Discuz!+DEDE+PHPCMS</description>
	<lastBuildDate>Fri, 03 Feb 2012 04:20:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>snoopy模拟登陆后采集https开头的aspx页面[转]</title>
		<link>http://www.4wei.cn/archives/1001157</link>
		<comments>http://www.4wei.cn/archives/1001157#comments</comments>
		<pubDate>Thu, 24 Mar 2011 00:59:32 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Snoopy]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=1001157</guid>
		<description><![CDATA[阅读前请看Snoopy+Https的配置文章：让Snoopy也支持HTTPS的解决办法 snoopy采集https，会调用curl模块，因为要确保安装了该模块，并且指明了路径。（snoopy默认指定的就是正确的） 构建一个表单提交 asp的站点会有些隐含的参数，要从页面中全部扣出来。 返回的信息是 Object Moved To Here；直接无视。 这时候已经登陆了，可以对要获取的页面进行采集。 如果你是在window环境下使用snoopy，curl会有问题，采集不到所要的内容。 建议在linux环境下进行。 你也可以用该登陆模块来实现通过程序发帖的功能，不过每次的验证码和sessionid都要自己手动填写。 曾经想过，存在cookie中的sessionid能不能通过程序读取，发现没办法跨域读取cookie。因此ff下，只能借助firebug 来查看，ie下借助httpwatch查看.. 本文转自：http://hi.baidu.com/bngoogle/blog/item/1d2190103647726acb80c45a.html]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/1001157/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让Snoopy也支持HTTPS的解决办法</title>
		<link>http://www.4wei.cn/archives/1000499</link>
		<comments>http://www.4wei.cn/archives/1000499#comments</comments>
		<pubDate>Sun, 21 Mar 2010 04:40:02 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Snoopy]]></category>
		<category><![CDATA[curl]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=1000499</guid>
		<description><![CDATA[How to make Snoopy work with https, we will find out! Class Name:Snoopy.class.php Snoopy version:1.2.4 如何让Snoopy这个PHP支持HTTPS，即SSL安全协议，我们今天就来解决这个问题。 First of all, look at the comment of $curl_path in Snoopy.class.php. Snoopy will use cURL for fetching SSL content if a full system path to the cURL binary is supplied here. set to false if you do not have [...]]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/1000499/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>php在线翻译类，基于Google翻译API开发(Google Translate API For PHP)</title>
		<link>http://www.4wei.cn/archives/1000487</link>
		<comments>http://www.4wei.cn/archives/1000487#comments</comments>
		<pubDate>Tue, 16 Mar 2010 16:55:48 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Snoopy]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=1000487</guid>
		<description><![CDATA[php 在线翻译程序，支持多国语言，基于Google翻译API开发。]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/1000487/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>使用Snoopy下载论坛附件，并上传到网盘的实例</title>
		<link>http://www.4wei.cn/archives/1000472</link>
		<comments>http://www.4wei.cn/archives/1000472#comments</comments>
		<pubDate>Fri, 12 Mar 2010 04:30:06 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Snoopy]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=1000472</guid>
		<description><![CDATA[Snoopy无疑是我使用过的最强大的采集类，本博也做过一些简单的入门介绍。 近日，我完成了数个基于Snoopy的程序，如批量下载百度文档附件、论坛附件下载、本地文件批量上传，已经能比较熟练的使用此类。加上本博主要是做采集程序研究的，那么，有必要将Snoopy的一些高级功能拿出来晒晒，照顾下新人。那今天要演示的一个功能是，Snoopy模拟用户登陆论坛并下载附件，并上传到网盘的一个实例。 通过本例，我们要取得附件上传到网盘以后，返回附件在网盘的下载链接。这个功能，可以和火车采集器无缝结合，实现火车采集器文章、Snoopy下载附件并按自定义目录保存、附件同步上传的效果。 首先讲一下模拟用户登陆需要使用到的几个重要数据。 模拟一个浏览器，如Firefox 3.5，即User-agent; 登陆论坛的Cookie值； 一个referer，即来源页地址； 这些数据可以通过抓包工具获取，如何使用抓包工具，请看一下这里：http://www.4wei.cn/?p=1000446。 需要注意的是，这里的User-agent和Cookie要同步，即同时通过抓包工具获取的；这里的referer也很重要，一般的防盗链措施均是通过referer来判断的。但如果对方网站不是很变态，一般只需要一个对方的网站域名就够了。 下面开始今天的代码。 以上的代码建立了一个基本的采集过程，如果你的cookie和user-agent填写正确的话，那么基本上可以确定，你已经成功登陆论坛了，你可以通过以下方式查看到采集到的数据。 突然觉得此文必火，那在这里插入一段版权链接，转摘着勿删。欢迎大家收看使用Snoopy下载论坛附件，并上传到网盘的实例。下面继续将我们获取的数据。 如果我们刚才成功采集了一条附件下载链接，那么我们可以在返回的数据中找到附件的名称。 发现附件以后，我们把文件保存起来，这个过程比较简单，一句话代过。 这里就算已经完成了附件的下载操作。接下来做文件上传的演示，代码注释十分清楚。 如果成功上传附件，则会返回一个带参数的下载地址，那我们通过正则匹配出新的网盘下载地址即可。 下面给出两张图片Demo： 最后是AD：有需要做类似功能开发的朋友，可以联系我，QQ:130775.]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/1000472/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Client Snoopy.class.php 的扩展优化</title>
		<link>http://www.4wei.cn/archives/1000416</link>
		<comments>http://www.4wei.cn/archives/1000416#comments</comments>
		<pubDate>Sun, 10 Jan 2010 07:02:30 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Snoopy]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=1000416</guid>
		<description><![CDATA[这几天在研究Snoopy的采集程序，完成对百度文档的采集和附件下载。 其中需要使用到对HTML进行DOM模型操作，读取表单中某个字段的Value，于是在网上找了一些类，发现了HTML SQL 和 DOMDocument两个类，功能还算是比较完善，可惜并没有我想要的效果，于是决定自己动手开发。 其中要加上自己的一些想法，在离开北京的最后一天，写上此文，估计年后就能看到成品了。希望这次回家不要太贪玩了。吼吼。 首先，要实现类Javascript的操作，如document.getElementById 和document.getElementByName，分别返回一个HTML元素对象和一个数组，唯一的HTML元素可以使用对象输出HTML的参数和值。 以下给出代码片段。 使用方法也比较简单。 基本工作完成了，接下来是一些扩展，准备加入以下功能。 连贯操作 类似Jquery的节点选择器功能。 先说连贯功能是什么东西。PHP类的连贯操作，在一个方法后直接调用另一个同级方法，我们习惯上称其连贯接口。在ThinkPHP2.0中，此方法使用十分普遍，逻辑清晰，效率也比较高，最重要的是，我觉得这功能很帅.... 至于连贯接口，也不是那么难懂，简单来说就是把结果返回给类本身，那类就可以执行其它允许的方法了，有想入门的童鞋可以看看这个文章：http://www.raychou.com/chou/posts/334.htm。 说到这里，可以给出一个演示。在一个html页面中，有一个表单，表单中有几个域，还有不同的值。来演示一下取得这些值的操作过程。 按DOM模型的路径，可以定位我们需要的元素和参数值，这里的选择过程非常类似Query的选择器，这里也简单模拟一个过程。 一个按Dom模型的选择过程就实现了，这里按HTML的元素类型进行选择的时候，是直接按元素名称进行方法命名的。考虑到可能在类中写不了很多HTML元素的方法，这里可以用__call方法来转载方法到另外一个操作上。 如: 被重定向其它操作，并返回数据到$this-&#62;results中，以便其它方法或者连贯方法调用 那么，按DOM模型进行节点选择的功能规划，就算大功告成了，回家以后的工作就是把过程完善，HTML元素的选择和逻辑处理，敬请期待。 document.getElementById]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/1000416/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>snoopy（强大的PHP采集类） 实例应用</title>
		<link>http://www.4wei.cn/archives/396</link>
		<comments>http://www.4wei.cn/archives/396#comments</comments>
		<pubDate>Mon, 05 Jan 2009 18:16:57 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[Snoopy]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=396</guid>
		<description><![CDATA[Snoopy是一个php类，用来模拟浏览器的功能，可以获取网页内容，发送表单。 下载地址： http://sourceforge.net/project/showfiles.php?group_id=2091 Snoopy的一些特点: 1抓取网页的内容 fetch 2 抓取网页的文本内容 (去除HTML标签) fetchtext 3抓取网页的链接，表单 fetchlinks fetchform 4 支持代理主机 5支持基本的用户名/密码验证 6 支持设置 user_agent, referer(来路), cookies 和 header content(头文件) 7支持浏览器重定向，并能控制重定向深度 8能把网页中的链接扩展成高质量的url(默认) 9提交数据并且获取返回值 10 支持跟踪HTML框架 11支持重定向的时候传递cookies 要求php4以上就可以了 由于本身是php一个类 无需扩支持 服务器不支持curl时候的最好选择， 类方法: fetch($URI) ———– 这是为了抓取网页的内容而使用的方法。 $URI参数是被抓取网页的URL地址。 抓取的结果被存储在 $this-&#62;results 中。 如果你正在抓取的是一个框架，Snoopy将会将每个框架追踪后存入数组中，然后存入 $this-&#62;results。 fetchtext($URI) ————— 本方法类似于fetch()，唯一不同的就是本方法会去除HTML标签和其他的无关数据，只返回网页中的文字内容。 fetchform($URI) ————— 本方法类似于fetch()，唯一不同的就是本方法会去除HTML标签和其他的无关数据，只返回网页中表单内容(form)。 fetchlinks($URI) —————- 本方法类似于fetch()，唯一不同的就是本方法会去除HTML标签和其他的无关数据，只返回网页中链接(link)。 默认情况下，相对链接将自动补全，转换成完整的URL。 submit($URI,$formvars) [...]]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/396/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snoopy初试，</title>
		<link>http://www.4wei.cn/archives/213</link>
		<comments>http://www.4wei.cn/archives/213#comments</comments>
		<pubDate>Tue, 23 Sep 2008 02:46:34 +0000</pubDate>
		<dc:creator>尘缘</dc:creator>
				<category><![CDATA[Snoopy]]></category>
		<category><![CDATA[study-notes]]></category>
		<category><![CDATA[LocoySpider]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.4wei.cn/?p=213</guid>
		<description><![CDATA[snoopy是一个php类，用来模仿web浏览器的功能，它能完成获取网页内容和发送表单的任务。 下面是它的一些特征： 1、方便抓取网页的内容 2、方便抓取网页的文字（去掉HTML代码） 3、方便抓取网页的链接 4、支持代理主机 5、支持基本的用户/密码认证模式 6、支持自定义用户agent,referer,cookies和header内容 7、支持浏览器转向，并能控制转向深度 8、能把网页中的链接扩展成高质量的url（默认） 9、方便提交数据并且获取返回值 10、支持跟踪HTML框架（v0.92增加） 11、支持再转向的时候传递cookies 下面是简单的例子，比如说我们抓取我的blog的文字 &#60;?php include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy-&#62;fetchtext("http://www.4wei.cn"); echo $snoopy-&#62;results; ?&#62; &#60;?php include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy-&#62;fetchlinks("http://www.4wei.cn"); print_r($snoopy-&#62;results); ?&#62; &#60;?php /** * @name Snoopy手册中文版 * @author 毛毛虫 wangchong1985@gmail.com * @version Snoopy - the PHP net client v1.2.2 * @link [...]]]></description>
		<wfw:commentRss>http://www.4wei.cn/archives/213/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

