登录  /  注册
巧妙运用PHP函数实现采集器_PHP教程
php中文网
发布: 2016-07-15 13:28:09
原创
628人浏览过

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

前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。用php来做采集器主要用到两个PHP函数:file_get_contents()和preg_match_all(),前一个是远程读取网页内容的,不过只在php5以上的版本才能用,后一个是正则函数,用来提取需要的内容的。面就一步一步来讲功能实现。因为是采集小说,所以首先要将书名、作者、类型这三个提取出来,别的信息可根据需要提取。

这样还不够,还需要一个切取PHP函数:

  1. function cut($string,$start,$end){
  2. $message = explode($start,$string);
  3. $message = explode($end,$message[1]); return $message[0];}其中$string为要被切取的内容,$start为开始的地方,$end为结束的地方。取出分类号:
  4. $start = "Html/Book/";
  5. $end
  6. = "List.shtm";
  7. $typeid = cut($typeid[0][0],$start,$end);
  8. $typeid = explode("/",$typeid);[/php]
  9. 这样,$typeid[0]就是我们要找的分类号了。方法如下:
  10. $ustart = """;
  11. $uend
  12. = """;
  13. //t表示title的缩写
  14. $tstart = ">";
  15. $tend
  16. = "<";
  17. //取路径,例如:123.shtm,2342.shtm,233.shtm
  18. preg_match_all("/"[0-9]{1,}.(shtm)"/is",$chapterurl,$url);
  19. //取标题,例如:第一章 九世善人
  20. preg_match_all("/<a href="[0-9]{1,}.shtm"(.*?)</a>/is",$file,$title);
  21. $countcountcount = count($url[0]);
  22. for($i=0;$i<=$count;$i++)
  23. {
  24. $u = cut($url[0][$i],$ustart,$uend);
  25. $t = cut($title[0][$i],$tstart,$tend);
  26. $array[$u] = $t;
  27. }
登录后复制

$array数组就是所有的章节地址了,到这里,采集器就完成一半了,剩下的就是循环打开每个章节地址,读取,然后将内容匹配出来。这个比较简单,这里就不详细叙述了。好了,今天就先写到这吧,第一次写这么长的文章,语言组织方面难免有问题,还请大家多包涵!


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446461.htmlTechArticlePHP经过长时间的发展,很多用户都很了解PHP了,我们现在可以利用PHP函数实现采集器程序。何为采集器,通常又叫小偷程序,主要是用来抓...

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学