【即将关站通知●已关闭注册功能】,倒计时剩余:计算中...

dede自动采集功能研究


首先分析一下,采集过程主要包括:
1.采集文档
2.生成文档
3.更新页面

三部分

由于这三部分都可以用dede后台完成,所以肯定有对应的函数可以调用。现在目标就是将这些函数找出来,然后自己写一个func把所有流程整理出来,让php实现自动采集
现在以5.6为例.打开后台页面,采集节点管理,找到真正的页面地址:
dede/co_main.php

然后将鼠标移动到“采集"按钮上,可以看到指向js 函数
GatherSel("")

打开co_main.php
找到GatherSel函数定义:
复制代码

  1.  
  2. function GatherSel(nid)
  3. {
  4.  if(nid=="") nid = getOneItem();
  5.  if(nid==""){ alert("请选择一个节点!"); return;}
  6.  location.href = "co_gather_start.php?nid="+nid;            //看到了么?真正的函数在这里 co_gather_start.php
  7. }
然后我们来看一下
co_gather_start的内容

复制代码

  1. <?php
  2. require_once(dirname(__FILE__)."/config.php");                
  3. require_once(DEDEINC."/dedecollection.class.php");       //这个类应该就是dede的采集模块了
  4. if(!empty($nid))              //??这里不太明白,不是要用$_GET[""]才能获得参数的吗?哪位php大虾帮手解释下?
  5.     $ntitle = '采集指定节点:';
  6.     $nid = intval($nid);     //类型转换
  7.     $co = new DedeCollection();     //实例化
  8.     $co->LoadNote($nid);                //载入节点,这个函数有用,记住哦~
  9.     $row = $dsql->GetOne("Select count(aid) as dd From `#@__co_htmls` where nid='$nid'; ");         //dede的自定义sql,应该是在config里定义的(还没打开来看)
  10. /*
  11. 上面的sql语句是查询dede_co_htmls表,这个表应该就是用来储存节点内容到数据库的.
  12. ok,下面我们的目标就是自己写一个采集节点内容到数据库的功能~
  13. */
  14.     if($row['dd']==0)
  15.     {
  16.         $unum = "没有记录或从来没有采集过这个节点!";
  17.     }
  18.     else
  19.     {
  20.         $unum = "共有 {$row['dd']} 个历史种子网址!<a href='javascript:SubmitNew();'>[<u>更新种子网址,并采集</u>]</a>";
  21.     }
  22. }
  23. else
  24. {
  25.     $ntitle = '监控式采集:';
  26.     $unum = "没指定采集节点,将使用检测新内容采集模式!";
  27. }
  28. include DedeInclude('templets/co_gather_start.htm');

  29. ?>


关于几种采集模式有点不明白,要重新了解一下先~

点“开始采集”后,指向
   <form name="form1" action="co_getsource_url_action.php" method="get" target='stafrm'>

再次辗转反侧,找到

co_getsource_url_action.php
//从数据库里载入某个节点
    function LoadNote($nid)

//---------------------------------------------------------
先分析这种采集模式

复制代码

  1. //重新下载所有内容模式
  2. /*-----------------------------
  3. function Download_all() { }
  4. ------------------------------*/
  5. else
  6. {
  7.     $gurl = "co_gather_start_action.php?notckpic=$notckpic&islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
  8.     $gurlList = "co_getsource_url_action.php?islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
  9.     $co = new DedeCollection();
  10.     $co->LoadNote($nid);
  11.     $limitList = $co->GetSourceUrl($islisten,$glstart,$pagesize);
  12.     if($limitList==0)
  13.     {
  14.         $row = $co->dsql->GetOne("Select count(aid) as dd From `#@__co_htmls` where nid='$nid'");
  15.         $totalnum = $row['dd'];
  16.         ShowMsg("已获得所有种子网址,转向网页采集...",$gurl."&totalnum=$totalnum");
  17.         exit();
  18.     }
  19.     if($limitList>0)
  20.     {
  21.         ShowMsg("采集列表剩余:{$limitList} 个页面,继续采集...",$gurlList."&glstart=".($glstart+$pagesize),0,100);
  22.         exit();
  23.     }
  24. }
激动人心的时刻到了,我们新建一个test.php,同时把dede_co_htmls表清空,
然后运行test.php测试一下

复制代码
  1. <?

  2.     require_once("dede/dede/config.php");            //dede配置函数,url地址请自己修改
  3.     require_once("dede/include/dedecollection.class.php"); //采集扩展函数



  4.     $co = new DedeCollection();        //采集类
  5.     $co->LoadNote(1);        //载入节点(nId),此外暂时载入第一个节点测试
  6.     $limitList = $co->GetSourceUrl(1,0,10,2);        //采集种子网址
  7.     
  8.     ShowMsg("finish");

  9.     $gurl = "co_gather_start_action.php?notckpic=$notckpic&islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
  10. //    $dsql->ExecuteNoneQuery("Update `#@__co_note` set cotime='".time()."' where nid='$nid'; ");



  11. ?>



再打开co_htmls表
o,yeah~有数据鸟~

采集成功~~~

收藏 邀请

路过

雷人

握手

鲜花

鸡蛋


最新评论

在线支持
关闭
欢迎来到魔趣吧
如果你有建站技术问题、仿站需求、模板插件修改需求,请联系我们的技术支持!高效率,低价格的帮你搞定!
请认准魔趣吧唯一官网:www.moqu8.com,谨防假冒网站!

一般问题请到【求助区】发帖咨询(免费)!

邮箱咨询:
winkill2012@qq.com

邮箱咨询需注明:资源地址+本站用户名+具体问题,三者缺一不做处理。非本站资源不处理!
在线支持

关于魔趣吧|魔趣建站

魔趣吧,志在打造全国最大的建站资源共享平台。 本站提供海量免费的建站资源,包括WordPress模板、Discuz精仿模板、PHPWind模板、phpcms模板、Discuz精仿插件、帝国cms模板、织梦模板等上万精品模板!同时,提供各种建站素材、JS特效、整站程序源码!
服务中文站长,传播分享精神!建站,就来魔趣吧!!
2015-2024 魔趣吧 ( 豫ICP备2021024354号 )   豫公网安备41030402000182号 百度统计
HTTPS安全认证
|网站地图 | 已运行:天 
温馨提示:本站所有资源、教程、源码,不得用于非法站点及用途,否则,本站将终止提供任何服务! Powered by Discuz! Licensed