PHP内容采集器(PHP小偷程序)

本文介绍了一个简易的小说采集器制作过程,使用PHP语言通过file_get_contents()和preg_match_all()函数实现了从特定网站抓取小说信息的功能。
采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的。

  前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。

  用php来做采集器主要用到两个函数:file_get_contents()和preg_match_all(),前一个是远程读取网页内容的,不过只在php5以上的版本才能用,后一个是正则函数,用来提取需要的内容的。

  下面就一步一步来讲功能实现。

  因为是采集小说,所以首先要将书名、作者、类型这三个提取出来,别的信息可根据需要提取。

  这里以《回到明朝当王爷》为目标,先打开书目页,链接:http://www.86zw.com/Book/3727/Index.aspx

  多打开几本书会发现,书名的基本格式是:http://www.86zw.com/Book/书号/Index.aspx,于是我们可以做一个开始页,定义一个<input type=text name=number>,用来输入需要采集的书号,以后就可以通过$_POST[‘number’]这种格式来接收需要采集的书号了。接收到书号,下面要做的就是构造书目页:$url=http://www.86zw.com/Book/$_POST[‘number’] /Index.aspx,当然这里是举个例子,主要是为了讲解方便,实际制作的时候最好检查一下$_POST[‘number’]的合法性。

  构造好URL以后就可以开始采集书籍信息了。使用file_get_contents() 函数打开书目页:$content=file_get_contents($url),这样就能将书目页的内容都读取出来了。接下来就是将书名、作者和类型等信息匹配出来了。这里就以书名为例,其他的都一样。 打开书目页,查看源文件,找到“<span class="booktitle">《回到明朝当王爷》</span>”,这就是要提取出来的书名了。提取书名的正则表达式: /<span class=/"newstitle/">(.*?)/<//span>/is,使用preg_match_all()函数将书名取出:preg_match_all("/<span class=/"newstitle/">(.*?)/<//span>/is",$contents,$title);这样$ title[0][0]的内容就是我们要的标题了(preg_match_all函数的用法可以去百度查,这里就不详细说明了)。取出了书籍信息,接下来就是取章节内容了,要取章节内容,首先要做的就是找到每一章的地址,然后远程打开章节,用正则将内容取出来,入库或者直接生成html静态文件。这个是章节列表的地址:http://www.86zw.com/Html/Book/18/3727/List.shtm,可以看出这个和书目页一样,是有规律可寻的:http://www.86zw.com/Html/Book/分类号/书号/List.shtm。书号前面已经取得,这里的关键是找到分类号,分类号可以在前面的书目页找到,提取分类号:

  preg_match_all("/Html//Book//[0-9]{1,}//[0-9]{1,}//List/.shtm/is",$contents,$typeid);这样还不够,还需要一个切取函数:

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]就是我们要找的分类号了。接下来就是构造章节列表的地址了:$chapterurl = http://www.86zw.com/Html/Book/.$typeid[0]/$_POST[‘number’]/List.shtm。有了这个就能找到每一章节的地址了。方法如下:

$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);
$count = 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数组就是所有的章节地址了,到这里,采集器就完成一半了,剩下的就是循环打开每个章节地址,读取,然后将内容匹配出来。这个比较简单,这里就不详细叙述了。好了,今天就先写到这吧,第一次写这么长的文章,语言组织方面难免有问题,还请大家多包涵!
UZCMS镜像程序采集系统是一款全自动采集复制网站的web应用程序,目前支持95%以上的网站类型采集!它采用PHP程序架构,安全高效,简单,灵活。程序首创一键复制整站、正则替换任意修改网站任意位置的信息,做成你想做的样子,达到即使1000个人采集的是同一个网站,却每个人都不相同的效果。可以自动采集图片,并成功突破多种图片防盗链!利用本程序,可以快速部署站点,自动更新内容程序内容使用万能通配符,省去目标站规则更新您也要更新的烦恼!堪称史上最牛的镜像采集程序程序后台在线演示帐号密码均为 admin 相对于市面上其他镜像程序采集工具,本程序具有如下特点: 1. 无需安装、使用简单:只需输入目标站地址,就可以复制一个完全一样的镜像程序;通过简单的数据替换,修 改CSS布局,即可制作出一个全自动更新的网站; 2. 全站伪静态.html结尾:无论您偷取什么样的网站,ASP,PHP,ASPX,本程序都会在内部自动转换参数,全部以.html伪静态方式结尾,如果您觉得我们默认的URL路径不好用或者不喜欢,没关系!我们为您准备了各种服务 器下的伪静态组件,您只需要简单配置,即可轻松完成Rewrite!每个用户的想法不同,Rewrite出来的样式也不同,如此使用自如的方式,极大的优化了搜索引擎的亲和力! 3. 全站缓存时效机制:后台设置缓存更新时间,会根据访客的访问情况自动更新缓存,保持和目标站内容一致:并且自带一键清除所有缓存的功能。极大的提高了程序访问速度,即使目标站短时间内Down机了,您的网站依然畅通无忧! 4. 支持多目录采集:如果目标站使用了多个目录,本站亦可自动将所有目录内的站点内容采集过来,形成一个站点 5. 全站伪原创:强大的SEO机制,如果启用伪原创,将极大的提高数据的原创性,内置8000组常用词汇,并且支持用户自己更改词汇设置,向搜索引擎亮剑; 6. 突破图片防盗链:程序内置多种图片防盗链破解机制,程序也会不断的更新并且完善突破防盗链,即使对方有图片防盗链功能,亦可轻松突破; 7. 支持不同域名的图片采集:比如百度、淘宝这样的大型站点,图片和网站使用了不同的域名;不同的服务器,本程序亦可将所有图片采集过来,同样可突破图片盗链; 8. 可自由修改网页内容/广告:通过简单的替换规则、可以将目标站站内任意内容、样式、广告、替换成自己想要的内容(html代码替换);可以删除不需要的内容,这一切只需要看的懂最简单的html即可,如果您不会,没关系,我们的售后会给你提供远程服务,现场教学; 9. 支持正则表达式屏蔽、删除;程序内置转码机制,将繁琐的正则表达式,简单化,只需要一个开头一个结尾,即可轻松屏蔽或替换任何内容; 10. 支持网站使用多级域名/多级目录:程序内置了目录、域名规则,即使您使用的是多级域名/多级子目录也不会影响到程序的正常使用,也就是说您一个域名可以用UZCMS建无数个站。 11. 支持自定义模板风格:通过正则表达式,屏蔽目标站的风格模块,将目标站的CSS文件下载到本地,即可实现自己制作完全脱离目标站的独立风格模板(新手需要帮助可以联系我们); 12. 支持站群功能:通过本程序的镜像复制系统,可以完全复制不限数量的站群,并且制作各种程序的伪原创词汇,达到百站相存,站站不一的效果; 13. 制作淘宝客等商务站点:支持采集复制淘宝客,拍拍客等盈利型站点,只需要在正则替换联盟PID即可 14. 支持代理服务器采集,避免目标站点封IP; 15. 支持登录采集,即使是目标站需要登录才能查看的VIP内容,也有一定概率可以采集; 16. 支持多种编码,购买一套程序我们是给您GBK+UTF-8两个版本的程序,想采集什么编码的站就采集什么编码。终生无忧; 17. 突破图片水印,只需要在配置文件里写上目标站图片上的水印文字,即可轻松祛除; 18. 程序自带安全保护,程序采用无需数据库构架,后台登陆账号密码必须修改文件才能实现生效,有效防止SQL漏洞,造成网站安全隐患。
采集车 当前版本:V1.1 采集车是一款完全免费的万能采集工具,无论您是使用wordpress,dede或其它任何系统管理您的知识,只要您经过简单的上传操作,系统就可以完美运。 使用方法: 第一步:下载客户端放入网站的根目录 第二步:到官网注册采集车帐号并绑定站点 第三步:从客户网站访问(用浏览器打开)采集车文件caijiche.php,并输入官网免费提供的激活码激活程序,此激活码的功能是为了通信完全设计。 第四步:到采集车官网控制客户端进行采集。 官方网站:www.caijiche.com 联系方式:QQ:caijiche@gmail.com(2558581450) 如果用数字搜索不到,请用EMAIL搜索QQ帐号 EMAIL:caijiche@gmail.com 官方论坛:http://www.caijiche.com/forum 下载地址:http://www.caijiche.com/release/caijiche.zip 视频教程网址:http://www.caijiche.com/forum/forum.php?mod=viewthread&tid=35&extra=page=1 采集车具有以特征: 1、完全免费 采集车是一款完全免费的信息收集工具,我们本着团结共享的精神,尽量压缩建站成本。 2、高通用性 无论您是使用wordpress,dede或其它任何系统管理您的知识,只要您经过简单的上传操作,系统就可以完美运行; 3、高稳定性 系统具有高稳定性,只要简单设计好任务,系统就可以完全按照您的意愿完美执行,您要做的就是坐享其成!; 4、高速采集 系统经过大量优化,占用CPU小,运行速度快,让您的服务器物尽其用!告别挂机采集! 5、智能采集 系统具有智能采集引擎,您只需要选择您要采集的关键词,系统将按您的要求自动查找相关文章并发到到您的系统当中; 6、智能发布 整个发布过程完全智能化,当然您还可以按照您的需求进行个性化的设置,完美兼容各种内容管理系统; 7、定时任务 定时任务可以让您的网站定时得到更新,告别繁琐的管理过程,把每天有限的精力集中到其它工作上!; 8、活动推广 活动推广可以让您简单轻松的推广您自己的网站和协助他人推广网站,通过大家的相互协作,达到共同进步的目的。 9、规则共享 所有的采集规则可以共享,共享后其它朋友可以使用您的规则进行采集,当然,这样您肯定可以获得应有的回报! 10、安全性高 系统所有协议均采用高强度加密算法进行加密,程序入口单一,通信安全放心!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值