电脑安全

您当前的位置:主页 > 电脑安全 >

PHP内容采集器(PHP小偷程序)-网络编程

来源:[db:来源]标题:   内容    编辑:电脑技术全能网 时间:2019-09-18 18:01

原标题:PHP内容采集器(PHP小偷程序)-网络编程
   收罗器,平日又叫小偷顺序,重要是用来抓取他人网页内容的。对于收罗器的制造,实在并不难,就是近程翻开要收罗的网页,而后用正则表白式将须要的内容婚配进去,只有略微有点正则表白式的基本,都能做出本人的收罗器来的。  前几天做了个小说连载的顺序,由于怕更新费事,顺带就写了个收罗器,收罗八路中文网的,功效比拟简略,不能自界说规矩,不外大略思绪都在外面了,自界说规矩能够本人来扩大。  用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。有了这个就能找到每一章节的地点了。<

上一篇:PHP与已存在的Java应用程序集成-网络编程

下一篇:没有了