php页面采集简单示例

Eddy 发布于2012-12-9 10:8:6 分类: 网站相关 已浏览loading 网友评论0条 我要评论

[FONT-SIZE=3]熟悉下正则表达式的运用
[CODE=php]
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
header('Content-Type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
require './Snoopy.class.php';
if(isset($_POST['submit']) && isset($_POST['url'])){
$url = $_POST['url'];
//验证url合法性
if(!preg_match('/^https?:\/\/[a-zA-Z0-9\-\.]+/i', $url)){
echo '

执行失败!URL不合法!

';
exit();
}
$snoopy = new Snoopy;
$snoopy->fetchlinks($url);
$myurl = array();
foreach($snoopy->results as $v){
if(strpos($v,'qiuzhitie')){
$myurl[]=$v;
}
}

$snoopy = null;

$snoopy = new Snoopy;
for($i=0;$i<4;++$i){
unset($myurl[$i]);
}

$j=0;
foreach($myurl as $v){
$snoopy->fetch($v);
echo '地址:',$v,'
';
preg_match('/(?<=

).*(?=<\/h1>)/',$snoopy->results,$matches);
echo '标题:',$matches[0],'
';
preg_match('/(?<="tel STYLE1">).*(?=<\/strong>)/',$snoopy->results,$matches);
echo '电话:',$matches[0],'
';
preg_match('/(?<=p" >)\s*.*\s*(?=<\/p>)/',$snoopy->results,$matches);
echo '详细信息:',trim($matches[0]),'
';
echo '
';

$j++;
if($j==10){
exit('在此只采集10条做演示');
}
}
}
?>





请输入待抓取页面url

测试地址:http://bj.h2h.cn/f2660gp1.html




[/CODE][/FONT-SIZE]

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/webdesign/859.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言