志凡'S BLOG

关注PHP,WEB开发,jquery ,PHP教程,程序优化,还有一些些互联网的乱七八糟的一些东西

Archive for the ‘snoopy’ tag

snoopy https 问题的解决

with 3 comments

今天在使用snoopy进行https的post请求,开始无法正常使用,有两个问题,因为https使用curl命令所以要安装并设置对。
var $curl_path = “/usr/local/bin/curl”; 这里设置对你的路径。

由于https默认都是443,snoopy似乎没有进行处理。
解决办法在所有case “https”:下面增加
$this->port = 443;

Written by zifa

六月 25th, 2009 at 10:31 下午

Posted in PHP相关

Tagged with ,

使用Snoopy进行网页抓取

without comments

目前做了几个抓取都使用到了Snoopy。使用Snoopy可以快速实现一些抓取要做的工作。

1.fetch 抓取网页内容
2.submit 实现post操作
3.fetchlinks 获取网页中的所有连接地址

所有结果在属性results中,

如取得网页内容

require(’Snoopy.class.php’);
$snoopy = new Snoopy();
$snoopy->fetch(’http://www.coderhome.net/’);
$html = $snoopy->results;
echo $html ;

其它的大家自己看代码吧。
代码下载地址http://coderhome.net/ophtml/d597.html

共享我的获取网页基本内容的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 输入url将获得网页的charset,title,description
function parseSite($url) {
	global $snoopy;
	$snoopy->results = NULL;
	$snoopy->fetch($url);
	$html = $snoopy->results;
	//charset
	preg_match('/text\/html\;\s*charset\=([^>\"\']+)[\"\']?\s*\/?>/isx',$html,$match);
	$charset = strtolower($match[1]);
	//title
	preg_match('/<title>([^<>]*)<\/title>/isx',$html,$match);
	$title = $match[1];
	$charset=='' && $charset='utf-8';
	if ($charset!='' && $charset!='utf-8') {
		$title = iconv($charset,'utf-8',$title);
	}
	//description
	preg_match('/meta\sname\=[\'\"]?description[\'\"]?\scontent=[\'\"]?([^\'\"<>]+)[\'\"]?\s*\/?>/isx',$html,$match);
	$description = $match[1];
	if ($charset!='' && $charset!='utf-8') {
		$description = iconv($charset,'utf-8',$description);
	}
 
	return array('url' => $url,'charset' => $charset,'title' => $title,'description' => $description,);
}

Written by zifa

三月 15th, 2009 at 5:42 下午

Posted in PHP相关

Tagged with ,