batchcollect pagecollect来自官方杰奇jieqi定时采集配置方法参数详解第1/2页

时间:2021-05-19

前言

要实现采集,默认方式是根据配置好的采集规则,在浏览器提交相应的参数即可完成后面的采集入库全部动作。
而实现定时采集,与人工在浏览器提交有些区别,主要分两大步骤:
一、编写采集的url和相关参数,访问这个url即可实现想要的采集模式。(这个url直接在浏览器提交同样可以实现采集)
二、把定时访问这个url的功能加到系统的定时任务里面,实现无人值守的定时采集。

具体实现方法请参考下面内容:

1、对采集配置文件的解释

任何一个采集都会用到两个采集配置文件(跟后台采集规则配置对应),都可以用文本编辑器打开查看。
其中/configs/article/collectsite.php是对总的采集站点配置,记录了一共允许采集哪几个站点。
里面包含类似这样的内容:

$jieqiCollectsite['1']['name']='采集站点一';
$jieqiCollectsite['1']['config']='abc_com';
$jieqiCollectsite['1']['url']='http://';
$jieqiCollectsite['1']['subarticleid']='floor($articleid/1000)';
$jieqiCollectsite['1']['enable']='1';

$jieqiCollectsite['2']['name']='采集站点二';
$jieqiCollectsite['2']['config']='def_net';
$jieqiCollectsite['2']['url']='http://www.def.net';
$jieqiCollectsite['2']['subarticleid']='';
$jieqiCollectsite['2']['enable']='1';

参数含义解释如下:
['1']-这里的1表示采集网站的数字序号,不同的采集站序号不能重复。
['name']-采集网站名称。
['config']-网站英文标识,这个网站采集规则配置文件有关,比如这个值是abc_com,那么采集规则配置文件就是/configs/article/site_abc_com.php。
['url']-采集网站网址。
['subarticleid']-采集网站,文章子序号运算方式,本项目主要为了兼容以前程序,新版本里面文章子序号可以通过采集获得。
['enable']-是否允许采集,1表示允许,0表示禁止,默认为1。

如前面所说,每个采集网站有个专门的采集规则配置文件,/configs/article/目录下以site_开头的php文件,如/configs/article/site_abc_com.php。

里面内容都与后台采集规则设置相对应,具体细节不一一解释。需要了解的是本文件里面内容分两大部分,前面内容都是对网站内容采集规则的配置,而最后面$jieqiCollect['listcollect']['0'],$jieqiCollect['listcollect']['1']这样的设置是对网站"批量采集规则"的配置,比如按最近更新采集、按排行榜采集,可以设置多个。['0']这里的数字0表示批量采集类别的数字序号,同一个网站也不能重复。

2、编写采集内容的url及参数

这里的采集是针对多篇文章批量采集,分两种模式:
一、按页面批量采集,比如采集最新更新列表或者排行榜列表,每个链接采集一页。
链接格式如下:

https:///modules/article/admin/pagecollect.php?action=collect&siteid=1&collectname=0&startpageid=1&maxpagenum=1&notaddnew=0&jieqi_username=admin&jieqi_userpassword=1234

参数含义解释如下:
-是指您的网址。
action-字符串,程序执行的动作命令,固定值为collect。
siteid-数字类型,要采集的网站序号,具体哪个网站对应什么序号见配置文件collectsite.php。
collectname-数字类型,按页面批量采集的类别序号,见配置文件site_xxxx.php里面下面的。$jieqiCollect['listcollect']['0']这样配置的数字。
startpageid--页码标志,表示从列表的第几页开始采集。一般是数字类型,有些网站也可能是字符串。
maxpagenum--数字类型,表示表示一共采集几页。(默认为1,如果要采集多页,是需要浏览器跳转的,只有在windows环境下调用浏览器时候有效,linux下调用wget时候最多只能采集一页,需要采集多页可设置多个采集命令。)
notaddnew--数字类型,0-表示采集全部文章,1-表示只更新本站已有的文章。
jieqi_username-字符串,用户名(这个用户必须是本站有权限采集的用户)。
jieqi_userpassword-字符串,用户密码。


二、按照文章序号批量采集
链接格式如下:
https:///modules/article/admin/batchcollect.php?action=bcollect&siteid=1&batchids=123,234,345&jieqi_username=admin&jieqi_userpassword=1234

参数含义解释如下:
-是指您的网址。
action-字符串,程序执行的动作命令,固定值为bcollect。
siteid-数字类型,要采集的网站序号,具体哪个网站对应什么序号见配置文件collectsite.php。
batchids-要采集的对方网站文章序号(不是本地的文章序号),采集多个文章,序号用英文逗号分开,如123,234,345。
jieqi_username-字符串,用户名(这个用户必须是本站有权限采集的用户)。
jieqi_userpassword-字符串,用户密码。

注:一个url需要放到IE浏览器里面提交的时候,整个url最大长度度不要超过2083字节,所以一般建议这里的url不要设置成太长,文章多的可以拆分成多个url。


3、利用系统任务实现定时采集

一、windows环境下做法

windows里面可以用系统的任务计划来实现定时执行程序,不过首先需要制作一个批处理文件,在这个文件里面用命令来调用浏览器来执行采集url。需要注意的是命令只能打开浏览器而不会采集好之后自动关闭,要实现采集完自动关闭可以通过javascript实现。自动关闭本窗口的js代码为:

<scriptlanguage="javascript">self.opener=null;setTimeout("window.close();",3000);</script>

这里的参数3000是指延迟关闭时间,单位是毫秒,3000表示延迟3秒关闭。
这段代码可以在两个地方加入:

一个是加入到提示信息模板/themes/风格名称/msgwin.html里面,<body>和</body>之间加入上面那段js。这样的效果是整个系统任何提示信息页面都会在3秒钟后自动关闭。

如果您希望仅仅自动关闭采集成功后的提示页面,可以在采集提示信息的语言包里面加入以上javascript,这个配置文件是/modules/article/lang/lang_collect.php,里面$jieqiLang['article']['batch_collect_success']是采集成功的提示信息,这个值原来是:

'恭喜您,全部文章采集完成!';

改成下面这样即可自动关闭

'恭喜您,全部文章采集完成!<scriptlanguage="javascript">self.opener=null;setTimeout("window.close();",3000);</script>';
12下一页阅读全文

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章