batchcollect pagecollect来自官方杰奇jieqi定时采集配
优采云 发布时间: 2020-08-03 17:00batchcollect pagecollect来自官方杰奇jieqi定时采集配置方式参数解读
更新时间:2008年07月11日 08:44:35 转载作者:
主要的功能页面为pagecollect.php和batchcollect.php要实现采集,默认方法是按照配置好的采集规则,在浏览器递交相应的参数即可完成前面的采集入库全部动作。
前言
要实现采集,默认方法是按照配置好的采集规则文章定时自动采集,在浏览器递交相应的参数即可完成前面的采集入库全部动作。
而实现定时采集,与人工在浏览器递交有些区别,主要分两大步骤:
一、编写采集的url和相关参数,访问这个url即可实现想要的采集模式。(这个url直接在浏览器递交同样可以实现采集)
二、把定时访问这个url的功能加到系统的定时任务上面,实现无人值守的定时采集。
具体实现方式请参考下边内容:
1、对采集配置文件的解释
任何一个采集都会用到两个采集配置文件(跟后台采集规则配置对应),都可以用文本编辑器打开查看。
其中/configs/article/collectsite.php是对总的采集站点配置,记录了一共容许采集哪几个站点。
里面包含类似这样的内容:
$jieqiCollectsite['1']['name']='采集站点一';
$jieqiCollectsite['1']['config']='abc_com';
$jieqiCollectsite['1']['url']='';
$jieqiCollectsite['1']['subarticleid']='floor($articleid/1000)';
$jieqiCollectsite['1']['enable']='1';
$jieqiCollectsite['2']['name']='采集站点二';
$jieqiCollectsite['2']['config']='def_net';
$jieqiCollectsite['2']['url']='';
$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及参数
这里的采集是针对多篇文章批量采集,分两种模式:
一、按页面批量采集,比如采集最新更新列表或则排行榜列表,每个链接采集一页。
链接格式如下:
参数含意解释如下:
-是指您的网址。
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-字符串,用户密码。
二、按照文章序号批量采集
链接格式如下:
,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代码为:
这里的参数3000是指延后关掉时间,单位是微秒,3000表示延后3秒关掉。
这段代码可以在两个地方加入:
一个是加入到提示信息模板/themes/风格名称/msgwin.html上面,和之间加入前面那段js。这样的疗效是整个系统任何提示信息页面就会在3秒钟后手动关掉。
如果您希望仅仅手动关掉采集成功后的提示页面,可以在采集提示信息的语言包上面加入以上javascript,这个配置文件是/modules/article/lang/lang_collect.php,里面$jieqiLang['article']['batch_collect_success']是采集成功的提示信息,这个值原先是:
'恭喜您,全部文章采集完成!';
改成下边这样即可手动关掉
'恭喜您,全部文章采集完成!';
建立批处理文件方式如下:
在任意目录构建一个后缀名为.bat的文件文章定时自动采集,比如D:\collect.bat,然后用文本编辑器输入类似下边的代码
@echooff
"explorer"";siteid=1&collectname=0&startpageid=1&maxpagenum=1&notaddnew=0&jieqi_username=admin&jieqi_userpassword=1234"
"explorer"";siteid=1&batchids=123,234,345&jieqi_username=admin&jieqi_userpassword=1234"
exit
其中
第一句@echooff是表示关掉显示
最后一句exit表示执行完退出
中间每行表示一个采集命令(可以设置多行),就是借助系统的浏览器来执行后面编辑好的采集url。
使用这样的格式:
"explorer""url"
前面部份是命令,后面是采集的url,也可以使用这样的格式:
"%programfiles%\InternetExplorer\IEXPLORE.EXE""url"
前面部份是ie浏览器的路径,后面是采集的url。
这两种命令模式的区别是,有多行命令的时侯,前者会打开多个浏览器窗口同时执行;而后者先打开浏览器执行第一个命令,必须等这个浏览器关掉后才能重新打开一个浏览器执行第二个命令。
编辑好里面的bat文件后,开始在任务计划上面添加执行这个任务,主要步骤如下(每半小时执行一次采集):
a、打开"控制面板",进入"任务计划"。
b、点"添加任务计划"打开任务计划向导进行添加任务。
c、点"下一步",然后点"浏览"选择要执行的程序。(例子上面就是选择D:\collect.bat)
d、设置任务名称及执行频度,比如选择"每天",点"下一步"。
e、选择最开始执行的时间和日期,一般设置比当前时间前面一点就行,点"下一步"。
f、设置执行的用户名和密码(本操作系统的账号),点"下一步"。
g、选择"在单击"完成"时,打开此任务的中级属性",点"完成"。
h、在"日程安排"里面,点"高级",选择"重复任务",设置"每30分钟"执行一次。
i、保存以上设置后即完成系统任务计划。
二、linux环境下做法
linux下可以借助的系统定时任务来执行,也同样须要先制做一个批处理的脚本,方法如下
在任意目录构建一个后缀为.sh的文件,比如/www/collect.sh,需要形参可执行权限,如chmod755/www/collect.sh
里面内容如下: