阅读前请看Snoopy+Https的配置文章:让Snoopy也支持HTTPS的解决办法
snoopy采集https,会调用curl???,因为要确保安装了该???,并且指明了路径。(snoopy默认指定的就是正确的)
继续阅读snoopy模拟登陆后采集https开头的aspx页面[转]
北京快乐八软件 www.gcpng.com Snoopy使用日志
阅读前请看Snoopy+Https的配置文章:让Snoopy也支持HTTPS的解决办法
snoopy采集https,会调用curl???,因为要确保安装了该???,并且指明了路径。(snoopy默认指定的就是正确的)
继续阅读snoopy模拟登陆后采集https开头的aspx页面[转]
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 cURL installed.
See //curl.haxx.se for details on installing cURL.
Snoopy does *not* use the cURL library functions built into php,as these functions are not stable as of this Snoopy release.
首先,看一下 Snoopy.class.php 中的注释。
如果系统支持cURL binary的话,Snoopy 将使用cURL来获取SSL内容.
如果没有安装cURL扩展,那这里的$curl_path默认就是false.
如何安装cURL请参见://curl.haxx.se .
虽然PHP5版本中已经内置了cURL函数,但Snoopy的作者认为,本版Snoopy发布时,这些cURL库的性能还不是很稳定。
如此说来,Snoopy的移情别恋是因为有更好的扩展库推荐。这个cURL库就是://curl.haxx.se。
访问这个站点,我看到当前的cURL版本已经更新到 2010年2月的 7.20.0,我顺道去看了一下PHP5.2.11 ext目录下的cURL.dll,可惜看不到版本号。
我使用的开发环境是Wamp,本以为在Windows环境下无法使用cURL功能,但很高兴,我在下载页面://curl.haxx.se/download.html 找到了Win32版本。而且,版本还比较丰富,包括Generic、MSVC和64位的版本。
默认支持2003/XP,so,尚不清楚在Win7下是否支持。有测试过的朋友可以反馈一下。
按照说明,下载openSSL和zlib并安装,Linux下基本已经默认自带了,各位可以可以检查一下,没有的可以按照说明编译,并重新配置一下PHP。
最后,重新在Snoopy.class.php中,指定cURL路径,设置端口为443,问题解决。
Google Translate API For PHP是一个基于Google Translate开发的翻译类,可以帮助PHP程序员实现多国文字的翻译。
本类使用到了Google的AJAX Translate API和Snoopy类,以模拟HTTP请求的方式实现数据的翻译。
以下是更新日志,如果您的接口不是最新版,请下载更新
以下是使用方法:
<?php //demo 1 $Google = new GoogleTranslate(); $Google->text = '这是一个基于Google在线翻译的工具'; $Google->from = 'zh-CN'; $Google->to = 'en'; $Google->translate(); echo $Google->result; //demo 2 $Google = new GoogleTranslate('这是一个基于Google在线翻译的工具', 'zh-CN', 'en'); echo $Google->result; //demo 3 $Google = new GoogleTranslate(); $Google->translate('这是一个基于Google在线翻译的工具', 'zh-CN', 'en'); echo $Google->result; ?>
部份同学不知道这个类是做什么用的,以下给出一份实例运用代码,用户可以保存为query.php跑一跑。
<?php if($_POST['text']) { include('GoogleTranslate.class.php'); $Google = new GoogleTranslate(); $Google->text = $_POST['text']; $Google->from = 'zh-CN'; $Google->to = 'en'; $Google->translate(); $content = $Google->result; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="//www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>采集进程控制台</title> </head> <body> <form method="post" action=""> <textarea name="text" rows="5" cols="40"><?php echo $content ? $content : '请在这里输入要翻译的内容!'; ?></textarea><br /> <input type="submit" /> </form> </body> </html>
Snoopy无疑是我使用过的最强大的采集类,本博也做过一些简单的入门介绍。
近日,我完成了数个基于Snoopy的程序,如批量下载百度文档附件、论坛附件下载、本地文件批量上传,已经能比较熟练的使用此类。加上本博主要是做采集程序研究的,那么,有必要将Snoopy的一些高级功能拿出来晒晒,照顾下新人。那今天要演示的一个功能是,Snoopy模拟用户登陆论坛并下载附件,并上传到网盘的一个实例。
通过本例,我们要取得附件上传到网盘以后,返回附件在网盘的下载链接。这个功能,可以和火车采集器无缝结合,实现火车采集器文章、Snoopy下载附件并按自定义目录保存、附件同步上传的效果。
首先讲一下模拟用户登陆需要使用到的几个重要数据。
这几天在研究Snoopy的采集程序,完成对百度文档的采集和附件下载。
其中需要使用到对HTML进行DOM模型操作,读取表单中某个字段的Value,于是在网上找了一些类,发现了HTML SQL 和 DOMDocument两个类,功能还算是比较完善,可惜并没有我想要的效果,于是决定自己动手开发。
其中要加上自己的一些想法,在离开北京的最后一天,写上此文,估计年后就能看到成品了。希望这次回家不要太贪玩了。吼吼。 继续阅读PHP Client Snoopy.class.php 的扩展优化
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。
下载地址: //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时候的最好选择, 继续阅读snoopy(强大的PHP采集类) 实例应用
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的文字
<?php
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchtext("//www.gcpng.com");
echo $snoopy->results;
?>
<?php
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchlinks("//www.gcpng.com");
print_r($snoopy->results);
?>
<?php
/**
* @name Snoopy手册中文版
* @author 毛毛虫 [email protected]
* @version Snoopy - the PHP net client v1.2.2
* @link //www.wangchong.org
* @since 2008-04-27
*/
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchtext("//www.php.net/");
print $snoopy->results;
$snoopy->fetchlinks("//www.phpbuilder.com/");
print $snoopy->results;
$submit_url = "//lnk.ispi.net/texis/scripts/msearch/netsearch.html";
$submit_vars["q"] = "amiga";
$submit_vars["submit"] = "Search!";
$submit_vars["searchhost"] = "Altavista";
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
$snoopy->maxframes=5;
$snoopy->fetch("//www.ispi.net/");
echo "
";
echo htmlentities($snoopy->results[0]);
echo htmlentities($snoopy->results[1]);
echo htmlentities($snoopy->results[2]);
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->user = "joe";
$snoopy->pass = "bloe";
if($snoopy->fetch("//www.slashdot.org/"))
{
echo "response code: ".$snoopy->response_code."
";
while(list($key,$val) = each($snoopy->headers))
echo $key.": ".$val."
";
echo "
";
例子: 展示所有属性的功能:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->proxy_host = "my.proxy.host";
$snoopy->proxy_port = "8080";
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "//www.microsnot.com/";
$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("//www.phpbuilder.com"))
{
while(list($key,$val) = each($snoopy->headers))
echo $key.": ".$val."
";
echo "
";
echo "
";
例子: 抓取框架内容并展示结果:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->maxframes = 5;
if($snoopy->fetch("//www.ispi.net/"))
{
echo "
COPYRIGHT:
Copyright(c) 1999,2000 ispi. All rights reserved.
This software is released under the GNU General Public License.
Please read the disclaimer at the top of the Snoopy.class.php file.
THANKS:
Special Thanks to:
Peter Sorger help fixing a redirect bug
Andrei Zmievski implementing time out functionality
Patric Sandelin
help with fetchform debugging
Carmelo misc bug fixes with frames
文章出处://www.diybl.com/course/1_web/webjs/200855/114322.html