迅睿CMS使用火车头采集内容教程

文章详情

采集工具:火车采集器(可以百度搜索一下这个工具的下载)

采集模块:新闻News


第一步、编写采集入库脚本接口

新建:/api/caiji.php(应用于URL地址请求,大小写随意)

如果根目录没有api文件夹,就创建到/public/api/caiji.php(应用于URL地址请求,大小写随意)

新建:./dayrui/My/Api/Caiji.php(首字母必须大小,最终php文件命名与上面的名称保持相同)

_module_init('news'); // news 是模块目录

if ($_GET['action'] == 'category') {
    $this->module['category'] = \Phpcmf\Service::L('category', 'module')->get_category($this->module['share'] ? 'share' : $this->module['dirname']);
    if (!$this->module['category']) {
        echo '模块【'.$this->module['dirname'].'】没有创建栏目';
    }
    foreach ($this->module['category'] as $t) {
        if ($t['child'] == 0 && $t['tid'] == 1) {
            echo '

'.$t['name'].'<=>'.$t['id'].'

'.PHP_EOL;         }     } } else {     // 入库数据     $data = $_REQUEST;     // 发布者id 1     $data['uid'] = 1;     // 发布者笔名 admin     $data['author'] = 'admin';     // 主表字段     $fields[1] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR));     $cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data'));     $cache && $fields[1] = array_merge($fields[1], $cache);     // 附表字段     $fields[0] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_data_0'));     // 去重复     $fields[0] = array_unique($fields[0]);     $fields[1] = array_unique($fields[1]);          // 格式化入库字段          // 一般是格式化非文本类的字段(例如多文件上传、复选框、联动字段等等)     // 这里需要按采集资料的格式入库格式化字段,               // 开始归类存储     $save = [];     // 主表附表归类     foreach ($fields as $ismain => $field) {         foreach ($field as $name) {             isset($data[$name]) && $save[$ismain][$name] = $data[$name];         }     }     if (!$data['catid']) {        exit('栏目为空');     }     $save[1]['uid'] = $save[0]['uid'] = $data['uid'];     $save[1]['catid'] = $save[0]['catid'] = $data['catid'];     $save[1]['url'] = ''; // 地址留空,系统会自动生成     $save[1]['status'] = 9; //9表示正常发布,1表示审核里面     $save[1]['hits'] = 0; // 阅读数     $save[1]['displayorder'] = 0; // 排序权重值,默认填写0     $save[1]['link_id'] = 0; // 填写0不管他     $save[1]['inputtime'] = SYS_TIME; // 发布时间设置成为当前时间     $save[1]['updatetime'] = SYS_TIME; // 更新时间也设置成为当前时间,关于时间采集如果是这种格式2022-12-12xx,那么需要使用strtotime函数转换成时间戳入库     $save[1]['inputip'] = '127.0.0.1'; // 发布者ip地址          //$save[1]['keywords'] = dr_get_keywords( $save[1]['title']); // 按插件提取关键词          //$save[1]['description'] = dr_get_description( $save[0]['content'], 100); // 在内容里面提取100个子作为描述     // 验证标题重复     if ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $save[1]['title'])->counts()) {         echo '重复';exit;     }     $rt = $this->content_model->save_content(0, $save);     if ($rt['code']) {         /*         // 用于发布成功后生成静态文件代码         //dr_html_auth($_SERVER['SERVER_ADDR']);         //dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['id']);         $atcode = 'chtml_'.SITE_ID.'_'.MOD_DIR.'_'.$rt['code'];         \Phpcmf\Service::L('cache')->set_auth_data($atcode, $rt['code'], SITE_ID);         dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['code'].'&atcode='.$atcode); $save[1]['id'] = $save[0]['id'] = $rt['code']; \Phpcmf\Service::L('router')->show_url(\Phpcmf\Service::C()->module, $save[1]);         */         exit('成功');     } else {         exit('失败');     } } exit;

脚本文件中可以定义发布者等一些预定义字段默认值,如果你不会php的话可以保持默认

注意:本脚本的程序代码只对内容等字段入库有效,由于采集目标网站的数据规范性无法做到统一;

如果开发者对其他字段(例如多文件上传、复选框、联动字段等等)需要开发者自己根据采集的实际情况来编写入库程序来组装入库的POST数据,需要PHP开发技术基础,下面来举一些基础例子。


1、多文件上传字段

$data['字段名称'] = dr_array2string([
    ['file'=>'文件路径', 'title'=>'标题'],   
]);


2、复选框字段

$data['字段名称'] = dr_array2string([
    '值1', '值2'  
]);

测试规则地址:

http://你的网站/api/caiji.php?action=category

如果能显示出来栏目信息,说明ok了

如果显示api file is error,表示你./dayrui/My/Api/Caiji.php没有创建正确。


第二步、火车采集器编写web发布规则

迅睿CMS使用火车头采集内容教程


第三步、新建一个在线发布模块

迅睿CMS使用火车头采集内容教程


第四步、填写获取栏目列表的参数

迅睿CMS使用火车头采集内容教程

/api/caiji.php?action=category

[分类名称]<=>[分类ID]

按照上面的格式写就ok了


第五步、内容发布规则参数

迅睿CMS使用火车头采集内容教程

发布地址:/api/caiji.php?action=post
表单参数:这里是你采集的字段
c错误码:失败 回车符 重复
成功标志码:成功

表单参数:这里可以配置任意自定义字段的入库,不知道入库格式怎么办?

查看数据库储存数据格式进行入库处理,必要时需要在接口文件中重新编程


第六步、保存模块

迅睿CMS使用火车头采集内容教程


第七步、然后返回web发布配置里面

迅睿CMS使用火车头采集内容教程

按照图中的参数配置,点“获取栏目”,如果可以获取到就表示成功了一大半了


第八步、测试入库发布

迅睿CMS使用火车头采集内容教程


第九步、后台查看采集内容

迅睿CMS使用火车头采集内容教程

收藏:0
来源:网站建设网

版权:所有文章为演示数据,版权归原作者所有,仅提供演示效果!

转载请注明出处:https://wzjianshe.com/syjq/6134.html

相关推荐
迅睿CMS如何获取数据POST和GET写法
迅睿CMS如何获取数据POST和GET写法:1、$_GET写法\Phpcmf\Service::L('input')->get('变量名'); // 会进行xss安全过滤\Phpcmf\Service::L('input')->get('变量名', false); ...
2024-11-11
37
迅睿CMS在后台列表增加链接二维码的功能
可以用于查验等场景中,生成一对一二维码,扫码进行结果查验。修改细节本教程基于XunRuiCMS官方免费版,如果您的是官方OEM版本,请根据自己定制路径修改。本次使用了jquery.qrcode.min.js组件,未改动PHP系统文件。具体页面路径为dayrui/Fc...
2024-11-11
87
迅睿cms如何使用自定义字段作为内容url?
使用迅睿cms时,可能会遇到类似需求,比如我自定义了一个编号字段为:bianhao,然后将这个字段作为url链接的关键字。实例:实际的链接地址:/news/编号.html欲实现链接地址:/news/ss0001.html1、首先创建字段,这个就不用讲,cms的基础功...
2024-11-11
101
迅睿CMS发送手机验证码开发教程
用在二次开发时,处理验证码发送程序,适合精通php的程序员模板代码: 图片验证 {dr_code(120, 35)} 短信验证 获取手机验证码 id传递手机号码程序判断部分:$code = \Ph...
2024-11-10
72
发表评论