立即注册找回密码

草根资源吧

官方指定联系方式

工作时间: 周一到周五早上09:00-11:00, 下午03:00-05:00, 晚上08:30-10:30(周六、日休息)
点击这里给我发消息 点击这里给我发消息
QQ: 280520150地址:河南郑州金水区  邮箱: lianxun888@163.com

dede自动采集功能研究

[复制链接]
  • TA的每日心情
    开心
    2018-7-1 22:44
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2018-5-12 23:47:49 | 显示全部楼层 |阅读模式
    首先分析一下,采集过程主要包括:
    1.采集文档
    2.生成文档
    3.更新页面

    三部分

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

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

    打开co_main.php
    找到GatherSel函数定义:
    [url=]复制代码[/url]
    • function GatherSel(nid)
    • {
    • if(nid=="") nid = getOneItem();
    • if(nid==""){ alert("请选择一个节点!"); return;}
    • location.href = "co_gather_start.php?nid="+nid;            //看到了么?真正的函数在这里 co_gather_start.php
    • }

    然后我们来看一下
    co_gather_start的内容

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



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

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

    再次辗转反侧,找到

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

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

    [url=]复制代码[/url]
    • //重新下载所有内容模式
    • /*-----------------------------
    • function Download_all() { }
    • ------------------------------*/
    • else
    • {
    •     $gurl = "co_gather_start_action.php?notckpic=$notckpic&islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
    •     $gurlList = "co_getsource_url_action.php?islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
    •     $co = new DedeCollection();
    •     $co->LoadNote($nid);
    •     $limitList = $co->GetSourceUrl($islisten,$glstart,$pagesize);
    •     if($limitList==0)
    •     {
    •         $row = $co->dsql->GetOne("Select count(aid) as dd From `#@__co_htmls` where nid='$nid'");
    •         $totalnum = $row['dd'];
    •         ShowMsg("已获得所有种子网址,转向网页采集...",$gurl."&totalnum=$totalnum");
    •         exit();
    •     }
    •     if($limitList>0)
    •     {
    •         ShowMsg("采集列表剩余:{$limitList} 个页面,继续采集...",$gurlList."&glstart=".($glstart+$pagesize),0,100);
    •         exit();
    •     }
    • }
    激动人心的时刻到了,我们新建一个test.php,同时把dede_co_htmls表清空,
    然后运行test.php测试一下

    [url=]复制代码[/url]
    • <?
    •     require_once("dede/dede/config.php");            //dede配置函数,url地址请自己修改
    •     require_once("dede/include/dedecollection.class.php"); //采集扩展函数
    •     $co = new DedeCollection();        //采集类
    •     $co->LoadNote(1);        //载入节点(nId),此外暂时载入第一个节点测试
    •     $limitList = $co->GetSourceUrl(1,0,10,2);        //采集种子网址
    •     ShowMsg("finish");
    •     $gurl = "co_gather_start_action.php?notckpic=$notckpic&islisten=$islisten&nid=$nid&startdd=$startdd&pagesize=$pagesize&sptime=$sptime";
    • //    $dsql->ExecuteNoneQuery("Update `#@__co_note` set cotime='".time()."' where nid='$nid'; ");
    • ?>




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

    采集成功~~~


    本帖最近访客
    回复

    使用道具 举报

    该用户从未签到

    发表于 2018-5-13 07:36:28 | 显示全部楼层
    好资源亲测来回复
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-15 18:30:13 | 显示全部楼层
    相当不错,感谢无私分享精神!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-17 21:36:05 | 显示全部楼层
    这是好东东啊谢谢分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-18 12:35:08 | 显示全部楼层
    真的很不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-22 15:46:41 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢
    回复 支持 反对

    使用道具 举报

    使用高级回帖 (可批量传图、插入视频等)

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则   Ctrl + Enter 快速发布  

    发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
    Powered by Discuz! X3.2 豫ICP备17024477号-1   
    Copyright © 2008-2016 www.sxpxb.net All Rights Reserved.
    快速回复 返回顶部 返回列表