温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用PHP函数实现采集器

发布时间:2021-08-09 23:34:53 来源:亿速云 阅读:119 作者:chen 栏目:编程语言

本篇内容介绍了“怎么用PHP函数实现采集器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。用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("/<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函数实现采集器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI