回到明朝当王爷的采集器是怎样的一种体验?
优采云 发布时间: 2021-05-14 22:14回到明朝当王爷的采集器是怎样的一种体验?
采集器,通常称为小偷程序,主要用于获取他人网页的内容。关于采集器的产生,实际上并不困难。它将远程打开采集的网页,然后使用正则表达式匹配所需的内容。只要您有一点正则表达式基础,就可以制作自己的采集器。
几天前,我做了一个新颖的序列化程序,因为我担心更新的麻烦,所以我顺便写了一个采集器,采集八路中文网络。该功能相对简单,无法自定义规则,但可能存在这些想法。在内部,自定义规则可以自己扩展。
使用php进行采集器主要使用两个函数:file_get_contents()和preg_match_all()。第一个用于远程读取Web内容,但只能在php5以上的版本中使用,而后者是常规功能。 ,用于提取所需的内容。
下面是功能实现的分步说明。
因为这是一部采集小说,所以请先提取标题,作者和体裁。可以根据需要提取其他信息。
这里的目标是“重返明代做王子”,首先打开书目页面,链接:
再打开几本书,您会发现书名的基本格式为:书号/Index.aspx,因此我们可以创建一个起始页并定义一个以输入需要采集的书号,然后我们可以传递$ _POST ['number']的格式是接收需要采集的书号。收到书号后,下一步是构建书目页:$ url = $ _ POST ['number'] / Index.aspx,当然,这里有一个示例,主要是为了便于说明,它是最好检查一下实际产量。 _POST ['number']的合法性。
构造URL之后,您可以启动采集图书信息。使用file_get_contents()函数打开书目页面:$ content = file_get_contents($ url),以便可以阅读书目页面的内容。下一步是匹配书名,作者和类型。让我们以这本书为例,其他所有内容都是相同的。打开书目页面,检查源文件,找到“回到明朝当主”,这是要提取的书的标题。提取书名的正则表达式:/(。*?)\ / is,使用preg_match_all()函数提取书名:preg_match_all(“ /(.*?)\/ is”,$ contents,$ title ); $ title [0] [0]的内容就是我们想要的标题(可以在百度上检查preg_match_all函数的用法,在此不再详细说明)。取出图书信息后,下一步就是获取章节内容。要获取章节内容,首先要做的是找到每个章节的地址,然后远程打开该章节,使用常规规则将内容取出,将其存储在库中或直接生成html静态文件。这是章节列表的地址:可以看出,这与书目页面相同,可以定期查找:分类号/书号/List.shtm。已获得ISBN。此处的关键是找到分类编号。分类号可以在上一个参考书目页面上找到。提取分类号:
preg_match_all(“ / Html \ / Book \ / [0-9] {1,} \ / [0-9] {1,} \ / List \ .shtm / is”,$ contents,$ typeid);这还不够,我们还需要一个cut函数:
] [-] PHP代码如下:
函数剪切($ 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 = $ typeid [0] / $ _ POST [‘number’] / List.shtm。这样,您可以找到每个章节的地址。方法如下:
$ ustart =“”“;
$ uend
=“”“;
// t代表标题的缩写
$ tstart =“>”;
$ tend
=“