PHP经过长时间的发展,很多用户都很了解PHP了,我们现在可以利用PHP函数实现采集器程序。何为采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的。

为加查等地区用户提供了全套网页设计制作服务,及加查网站建设行业解决方案。主营业务为成都网站设计、网站建设、加查网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#T#前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。用php来做采集器主要用到两个PHP函数:file_get_contents()和preg_match_all(),前一个是远程读取网页内容的,不过只在php5以上的版本才能用,后一个是正则函数,用来提取需要的内容的。面就一步一步来讲功能实现。因为是采集小说,所以首先要将书名、作者、类型这三个提取出来,别的信息可根据需要提取。
这样还不够,还需要一个切取PHP函数:
- function cut($string,$start,$end){
 - $message = explode($start,$string);
 - $message = explode($end,$message[1]); return $message[0];}其中$string为要被切取的内容,$start为开始的地方,$end为结束的地方。取出分类号:
 - $start = "Html/Book/";
 - $end
 - = "List.shtm";
 - $typeid = cut($typeid[0][0],$start,$end);
 - $typeid = explode("/",$typeid);[/php]
 - 这样,$typeid[0]就是我们要找的分类号了。方法如下:
 - $ustart = "\"";
 - $uend
 - = "\"";
 - //t表示title的缩写
 - $tstart = ">";
 - $tend
 - = "<";
 - //取路径,例如:123.shtm,2342.shtm,233.shtm
 - preg_match_all("/\"[0-9]{1,}\.(shtm)\"/is",$chapterurl,$url);
 - //取标题,例如:***章 九世善人
 - preg_match_all("/ href=\"[0-9]{1,}\.shtm\"(.*?)\<\/a>/is",$file,$title);
 - $countcountcount = count($url[0]);
 - for($i=0;$i<=$count;$i++)
 - {
 - $u = cut($url[0][$i],$ustart,$uend);
 - $t = cut($title[0][$i],$tstart,$tend);
 - $array[$u] = $t;
 - }
 
$array数组就是所有的章节地址了,到这里,采集器就完成一半了,剩下的就是循环打开每个章节地址,读取,然后将内容匹配出来。这个比较简单,这里就不详细叙述了。好了,今天就先写到这吧,***次写这么长的文章,语言组织方面难免有问题,还请大家多包涵!
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号