dedecms是一个开源的网站管理系统,内含的采集器功能比较强大和易用。然而作为一个通用的采集器,它只能从一个列表页中选取合适的采集页,针对一个采集的对象下载一个网页,对该网页内容做分析,通过采集规则的匹配完成字段的采集,在用途上往往会受到限制,本文就是结合实际应用对该采集器扩充功能。
扩展一:重写待采集url
问题的提出:sohu影视库的列表页为[url]http://data.yule.sohu.com/movie/film.html[/url]
从列表页中可以采集到的页面为[url]http://data.yule.sohu.com/movie/data/23639/[/url]
但是发现这些页面中只是概要信息,详细信息的采集需要重新定向到[url]http://data.yule.sohu.com/movie/data/23639/details.html[/url]
解决方法:这个问题解决较为容易,只需要找到待采集的url,做一个字符串替换。
具体做法打开include/pub_collection.php
1)在大约730行的地方,INSERT INTO #@__courl语句执行之前,对$k做处理。(注:对最终采集过程起作用)
2)在大约615行的地方,两个echo "$k - ".$v."\r\n"语句之前,对$k做处理。(注:对测试结果的显示起作用)
例如针对上面的问题,可以执行$k=eregi_replace("(/[0-9]{5})","\\1/details.html","$k");

扩展二:采集的字段属于不同的页面

问题的提出:mtime电影库的列表页为[url]http://www.mtime.com/movie/new/[/url]
从列表页中可以采集到的页面为[url]http://www.mtime.com/movie/71373/[/url]
但是这些页面中也是概要信息,有些字段的采集需要到其它相关页面去采集。例如上映时间需要到[url]http://www.mtime.com/movie/71373/releaseinfo.html[/url],详细剧情需要到[url]http://www.mtime.com/movie/71373/plots.html[/url]
解决方法:对于一个采集对象,系统只下载一个网页然后进行分析,所以需要扩充底层的数据结构,使其可以下载多个页面,并且不同的字段可以选择不同的页面作为采集的来源。
具体做法:打开include/pub_collection.php
1)在DedeCollection类的成员变量定义中,tmpHtml是保存下载的采集页面。这里需要增加一个数组成员变量tmpHtmls,用来保存下载的其它多个页面。
2)参考DownOnePage函数,写一个DownAllPages函数,用来下载指定的多个页面。function DownAllPages($dourl){$collectHtmlLists=array("plots.html","releaseinfo.html","details.html");foreach($collectHtmlLists as $value){$httempurl = $dourl.$value;$this->CHttpDown->OpenUrl($httempurl);$tmpHtmls[$value] = $this->CHttpDown->GetHtml();$this->ChangeCode($tmpHtmls[$value]);}$this->CHttpDown->Close();return $tmpHtmls;}
3)在GetPageFields函数中,增加字段的页面选择
即把$v = $this->GetHtmlArea("[var:内容]",$sarr["match"],$this->tmpHtml);
中的第三个参数改为合适的页面。
4)在DownUrl函数中,增加对DownAllPages函数的调用$htmls = $this->DownAllPages($dourl);$this->tmpHtmls = $htmls;

转载于:https://blog.51cto.com/onlyforlin/95116

dedecms采集功能扩展相关推荐

  1. DedeCMS采集功能

    DedeCMS采集功能使用基本知识讲解 2010-08-09 16:58:13|  分类:dedecms学习 |  标签:采集  规则  列表  内容  页面  |字号大中小 订阅 采集是指有着确定方 ...

  2. dedecms采集功能的详细介绍(十)

    dedecms采集功能的详细介绍(十) 今天来给大家讲解下dedecms的采集功能,希望大家认真学习 一.采集第一要素:确定目标网站 二.路径:后台--采集--采集节点管理--添加一个新节点----普 ...

  3. php 程序员使用采集,如何使用dedecms织梦的采集功能 | 我是程序员

    Dedecms采集功能的使用方法 - 不含分页的普通文章(一) 1.1进入采集节点管理界面 如(图1)所示,在后台管理界面的主菜单中单击"采集",然后单击"采集节点管理& ...

  4. 织梦DedeCMS采集图片路径怎么按月存放

    织梦DedeCMS采集功能很多朋友都在使用,但是采集的图片每天都会存放,怎么样才能按月存放,这样在备份的时候也不会有很多的目录存在. 打开目录include/dedecollection.class. ...

  5. dedeCMS采集内容无需写规则方法

    怎么用免费dedeCMS采集功能把关键词优化到首页,怎么做到网站快速收录?所用网站通用 一.网站首页,搜索引擎最重要的部分 无论是百度还是谷歌,主页都是评估一个网站的重要参数.对于经常更新的大型网站, ...

  6. dedecms采集基础篇

    dedecms的确有很强大的采集功能,现在,网站已采集了8成左右,就采集中所遇到的问题,现作出了一些总结,便于共同学习,交流. 一,进入采集中管理界面 在后台管理界面的主菜单中单击"采集&q ...

  7. 新版DedeCMS采集发布插件教程工具

    网站权重越高是不是收录速度就越快,是不是只要网站权重足够高网站内容就可以做到秒收录呢?对于新站来说低权重站点是不是就无法做到内容的快速收录呢?如果这么想那么就是一厢情愿的想法,而且是一个不成熟的想法. ...

  8. dedeCMS采集规则各大CMS采集规则通用

    dedeCMS采集器不知道大家有没有了解过,可能很多站长都没有接触过采集!采集最大的优势就是扩大网站收录增加网站排名从而获得更多的流量,相信还是有绝大部分人采集过来不收录,就放弃采集了!其实采集过来的 ...

  9. 免费聚合文章dedeCMS采集脚本网页采集器

    dedecms以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,无论是在版本还是在功能,都有了长久的发展和进步,DedeCms主要 ...

最新文章

  1. mysql等价语句是_Mysql基本语句(个人笔记)
  2. C++ explicit关键字详解(转载)
  3. 应该知道的自动化测试陷阱2
  4. java模拟数据库压测_写并发压测 java 脚本你必须会的 3 个类
  5. FactoryBean 源码
  6. 10分钟学会如何使用Shiro
  7. [蓝桥杯][基础练习VIP]完美的代价-贪心
  8. HDU 4722 Good Numbers 2013年四川省赛题
  9. python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径
  10. python函数递归求和详解_Python递归函数详细分析
  11. C# Winform 实现Ajax效果自定义按钮
  12. Linux时间子系统之(四):timekeeping
  13. linux 小巧的浏览器,Linux奇技淫巧:一款特别轻量级的网页浏览器
  14. Java如何打印输出九九乘法表
  15. 标准正态分布+标准正态分布概率表+分布函数+积分
  16. 适用于 Android 的 Visual Studio 模拟器
  17. 大前端CPU优化技术--NEON指令介绍
  18. python replace函数 成功 失败_解决python replace函数替换无效问题
  19. Java实现阿拉伯数字转大写中文
  20. npm太慢, 淘宝npm镜像使用方法

热门文章

  1. weblogic管理脚本
  2. json Date对象在js中的处理办法
  3. IDEA查看Java类的UML关系图
  4. JSON中单双引号的处理
  5. vue 实现任意组件之间的通信
  6. 用Java实现一个简单的链表迭代器
  7. 通过手机物理返回键实现弹出层的隐藏
  8. HiTSDB 时序数据库技术架构和产品解析
  9. L2-008 最长对称字串 以下标i展开
  10. QCon速递:Xen漏洞热补丁修复、异地双活、ODPS新功能与金融互联网