核心方法:利用PHP制作简单的内容采集器的方法

优采云 发布时间: 2020-11-23 10:00

  如何使用PHP制作简单的内容采集

  今天,编辑者将为每个人解释文章语言编程。在课堂上,老师们将了解语言编程中没有的技能,我相信这会对每个人都有很大的帮助

  php示例教程采集器,通常称为小偷程序,主要用于获取其他人网页的内容。关于采集器的产生,实际上并不困难。它将远程打开采集的网页,然后使用正则表达式匹配所需的内容。只要您有一点正则表达式基础,就可以制作自己的采集器来。

  几天前我做了一个新颖的序列化程序,因为怕更新的麻烦,我写了一个采集器,采集八路中文网,功能比较简单,不能自定义规则,但想法可能在内部,自定义规则可以自己扩展。

  使用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]

  好吧,我从事编程语言统计已经有很多年了。数据源很多,包括代码存储库,问答讨论,招聘广告,社交媒体情况,教程页面访问,学习视频视图,开发人员调查等。在不同时间发布的数据可以被认为是准确的,

  也可以被认为是有缺陷的,但是它们可以用来发现行业趋势。最后,不要指望一夜之间成为编码忍者。有些人具有天生的能力,但他们也花费大量时间来磨练自己的技能并不断学习新技术。 “

  XML在过去三年中经历了多次迭代,因此,目前存在不同版本的Microsoft XML解析器也就不足为奇了。 Internet Explorer4.0收录XML解析器的早期版本,该版本早于XSL,XML数据或大多数其他XML技术(并且具有完全不同的DOM模型)。 MSXML.dll库中收录该*敏*感*词*的早期版本。可以从MSDN XML开发人员中心(英语)将*敏*感*词*升级到较新的版本。

  我们强烈建议您升级到新的*敏*感*词*,因为它的功能要强大得多。 Internet Explorer5.0收录MSXML2.0解析器,该解析器收录XSL和XML架构的基本版本。 MSXML2是SQL Server 2000附带的分析器的版本。MSXML2收录许多性能增强功能,并且总体性能和可伸缩性得到了改善。 MSXML3是当前收录在“技术预览”中的版本。 MSXML3包括XSLT和XPath支持以及SAX接口。

  在php教程中,$ typeid [0]是我们要查找的分类号。下一步是构造章节列表的地址:$ chapterurl = $ typeid [0] / $ _ POST [‘number’] / List.shtm。这样,您可以找到每个章节的地址。方法如下:

  以下是引用的内容:

  $ ustart =“ \\\\”“;

  $ uend

  =“ \\\\”“;

  // t代表标题的缩写

  $ tstart =“>”;

  $ tend

  =“

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线