巧妙运用PHP函数实现采集器
PHP经过长时间的发展,很多用户都很了解PHP了,我们现在可以利用PHP函数实现采集器程序。何为采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的。
- 经验之谈:PHP安装设置技巧总结
- 演示PHP substr函数使用
- 关于Windows下安装PHP5配置详细介绍
- 详细介绍对象PHP串行化
- 详谈PHP WEB服务器相关知识
这样还不够,还需要一个切取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("/<a 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数组就是所有的章节地址了,到这里,采集器就完成一半了,剩下的就是循环打开每个章节地址,读取,然后将内容匹配出来。这个比较简单,这里就不详细叙述了。好了,今天就先写到这吧,第一次写这么长的文章,语言组织方面难免有问题,还请大家多包涵!
PHP之友评论