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

前言

要实现采集,默认方式是根据配置好的采集规则,在浏览器提交相应的参数即可完成后面的采集入库全部动作。
而实现定时采集,与人工在浏览器提交有些区别,主要分两大步骤:
一、编写采集的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下一页阅读全文

(0)

相关推荐

  • Js-$.extend扩展方法使方法参数更灵活

    在做JS开发时,我们将第三方复杂的插件进行封装,然后对外公开一个很简单的方法接口,这是开发时常用的方法,在JS里,我们的方法参数通常使用JQ的$.extend 扩展方法来实现 复制代码 代码如下: function extend(arr) { arr = $.extend({ name: 'zzl', sex: 'male', age: 31 }, arr || {}); alert("[Name:]" + arr.name + "[Sex:]" + arr.sex

  • JQuery中$.ajax()方法参数详解及应用

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

  • PHP获取当前日期和时间及格式化方法参数

    使用函式 date() 实现 复制代码 代码如下: <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 相关时间参数: a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" D - 星期几

  • 对Java中传值调用的理解分析

    本文实例分析了Java中的传值调用.分享给大家供大家参考.具体分析如下: Java以引用的方式操作对象实例 可以确认的是Java中操作对象的方式是以引用的方式操作对象.为了更深刻的了解这点我写了如下代码: 首先定义一个自定义类型 复制代码 代码如下: public class Person {            String name;            Person(String name){          this.name = name;      }  } 这里name默认是

  • Java方法参数是引用调用还是值调用?

    方法调用(call by) 是一个标准的计算机科学术语.方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) .江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用.这其实很不恰当,这种 这些说法很容易让我们联想到Java的对象参数传递是引用调用,实际上,Java的对象参数传递仍然是值调用 . 我们首先用一段代码来证实一下为什么Java的对象参数传递是值调用. public class

  • Jquery之Bind方法参数传递与接收的三种方法

    方法一. function GetCode(event) { alert(event.data.foo); } $(document).ready(function() { $("#summary").bind("click", {foo:'abc'} ,GetCode); }); 方法二. 函数句柄 $("#summary").bind("click", function() { GetCode("abc"

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

    前言 要实现采集,默认方式是根据配置好的采集规则,在浏览器提交相应的参数即可完成后面的采集入库全部动作. 而实现定时采集,与人工在浏览器提交有些区别,主要分两大步骤: 一.编写采集的url和相关参数,访问这个url即可实现想要的采集模式.(这个url直接在浏览器提交同样可以实现采集) 二.把定时访问这个url的功能加到系统的定时任务里面,实现无人值守的定时采集. 具体实现方法请参考下面内容: 1.对采集配置文件的解释 任何一个采集都会用到两个采集配置文件(跟后台采集规则配置对应),都可以用文本编

  • 使用jmx exporter采集kafka指标示例详解

    目录 预置条件 使用JMX exporter暴露指标 kafka集群启用监控 采集producer/consumer的指标 预置条件 安装kafka.prometheus 使用JMX exporter暴露指标 下载jmx exporter以及配置文件.Jmx exporter中包含了kafka各个组件的指标,如server metrics.producer metrics.consumer metrics等,但这些指标并不是prometheus格式的,因此需要通过重命名方式转变为promethe

  • PHP定时备份MySQL与mysqldump语法参数详解

    先来为大家介绍几个MySQL备份命令mysqldump常用操作实例: 1.mysqldump备份 只导出表结构 d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --no-data --default_character-set=utf8 > d:/Python/data/snsgou_sns_test_table.sql mysqldump只导出数据 d:/PHP/xampp/

  • Navicat for MySQL定时备份数据库及数据恢复详解

    在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电影等设置,希望对您有所帮助,如果文章中存在错误或不足之处,还请海涵~ 一. 设置计划任务定时备份数据库 计划任务就是让电脑在指定的时间内执行指定的动作,这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的!其实再通俗一点也就是相当于你在那个时间里面进行了对某个东西对鼠标双击的操作. 1.

  • linux下日志定时轮询的流程详解

    logrotate介绍 对于Linux系统安全来说,日志文件是极其重要的工具.日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.当日志文件不断增长的时候,就需要定时切割,否则,写日志的速度和性能也会下降,更不便于我们归档,查询. 所以便有了使用logrotate的时候 ,logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除

  • Android官方下拉刷新控件SwipeRefreshLayout使用详解

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介: SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件.它使用一个侦听机制来通知拥有该组件的监听器有刷新事件发生,换句话说我们的Activity必须实现通知的接口.该Activity负责处理事件刷新和刷新相应的视图.一旦监听者接收到该事件,就决定了刷新过程中应处理的地方.如果要展示一个"刷新动画",它必须

  • SpringBoot实现定时发送邮件的三种方法案例详解

    目录 一.发送邮件的三种方法 二.定时任务介绍 1.@EnableScheduling 2.@Scheduled 三.前期准备工作 1.登录QQ邮箱获取授权码 第一步:进入QQ邮箱 第二步:找到POP3/SMTP,并开启 第三步:复制授权码 2.pom.xml中的依赖 3.在全局配置文件application.properties添加邮件服务配置 四.操作 一.创建邮件发送任务管理的业务处理类SendEmailService 二.在test类中发送邮件 三.发送定时邮件 四.在项目启动类上添加基

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

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

  • Python采集代理ip并判断是否可用和定时更新的方法

    网上有很多免费的ip地址,都是可以使用的,但是如果手动来获取太麻烦,这里通过Python自动抓取,可以批量获取. 代码如下: # -*- coding: utf-8 -*- import re import urllib2 import json import os import time import socket class ProxyIp(object): def __init__(self): self.path = os.path.split(os.path.realpath(__fi

  • asp.net基于windows服务实现定时发送邮件的方法

    本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; public int nowhour; public int minutes; public string sendTime; public Thread th; public string isOpen;//是否启用定时发送 public string strToEUser; public static i

随机推荐