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

前言

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

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

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

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

$jieqiCollectsite['1']['name'] = '采集站点一'; 
$jieqiCollectsite['1']['config'] = 'abc_com'; 
$jieqiCollectsite['1']['url'] = 'http://www.abc.com'; 
$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及参数

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

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

参数含义解释如下:
www.jb51.net - 是指您的网址。
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 - 字符串,用户密码。

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

参数含义解释如下:
www.jb51.net - 是指您的网址。
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代码为:

<script language="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'] 是采集成功的提示信息,这个值原来是:

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

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

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

当前1/2页 12下一页阅读全文

时间: 2024-08-04 01:52:03

batchcollect pagecollect来自官方杰奇jieqi定时采集配置方法参数详解第1/2页_杰奇cms的相关文章

linux定时执行命令crontab命令详解

循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令.   一.crond简介   crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启

老Y文章管理系统采集自动伪原创详解

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 做垃圾站的站长们,最希望的事就是网站可以自动采集.自动完成伪原创.然后自动收钱,这实在是天底下最幸福的事,呵呵.自动采集和自动收钱就不讨论了,我今天介绍一下如何利用老Y文章管理系统采集时自动完成伪原创的方法. 老Y文章管理系统使用简单.方便,虽然功能不如DEDE之类的强大到几乎变态的程度(当然,老Y文章管理系统是asp语言写的,似乎也没有可比

PHP file_get_contents采集程序开发教程详解

file_get_contents() 远程文件获取函数,用来获取远程页面内容 preg_match_all()进行全局正则表达式匹配,匹配多次,用于匹配列表 preg_match   ()进行正则表达式匹配,匹配一次,用于匹配终端 preg_replace ()进行正则表达式替换,用于过滤终端 具体步骤 Step 1 获取单页列表 和 单篇文章内容 在批量采集列表和内容之前,我们先将网站的单页列表和单篇文章的内容采集作为测试正则表达式对错. 列表页采集文章的链接地址:  代码如下 复制代码 <

Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息_小偷/采集

由于微软封锁了 XmlHttp 对象,所以无法伪造部分 HTTP 头信息,但是 WinHttp.WinHttpRequest.5.1 对象,它居然用可以成功伪造所有 http 请求的 header 信息! 从msdn得知,WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来,WinHttpRequest 的用法与 XmlHttp 大致相同. WaitForResponse 在使用异

php采集神器cURL使用方法详解_php实例

对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_contents显得有点无能为力.因此,本文将为你介绍采集神器cURL的使用. 先给大家补充一下file_get_contents函数可以获取远程链接数据的方法. <?php $url = "http://git.oschina.net/yunluo/API/raw/master/notice.t

如何利用DOS批处理实现定时关机操作详解_DOS/BAT

一.批处理释义: 批处理(Batch),也称为批处理脚本.它是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,应用于DOS和Windows系统中.批处理文件的扩展名为bat. 目前比较常见的批处理包含两类:DOS批处理和PS批处理.PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本:而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本. 二.编写批处理文件: (1)新建一个文本文件,在里面写上DOS命令语句.然后选择另存为改文

aspnet-求定时采集数据的demo

问题描述 求定时采集数据的demo 各位大神,谁有定时采集数据的demo,或者给点思路.需要实现的是比如每隔五分钟自动采集www.xxxxxx.com/a.xml的数据.然后保存到数据库. 解决方案 http://www.cnblogs.com/freeliver54/archive/2007/03/06/665625.html采集用httpwebrequest

servlet-急求一个定时采集信息的方法

问题描述 急求一个定时采集信息的方法 项目需要每隔一段时间就向GPS系统请求船舶的经纬度信息,我负责接口,经理要我用Servlet做这么一个定时采集的功能,有什么简单可行的办法?我没接触过这种,回答的越详细越好,谢谢. 解决方案 这个你能不能用定时器解决一下呢?在到一定的时间的时候,他就会自己启动,这样应该可以实现吧,具体我也不是太明白.

JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法_javascript技巧

本文实例讲述了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法.分享给大家供大家参考,具体如下: setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. 项目中引用到jquery.timers-1.2.js定时器,并且MSClass做信息定期滚动,每3分钟执行一次,执行三次左右,滚动的次数越来越快,原因在于timers和MSClass都用了setInterval, 都会再次添加一个setInterval,最后导致几个setIn