采集工具:火车采集器 v7.6
采集模块:新闻 News
一、编写采集入库脚本接口
新建:./api/caiji.php
<?php /** * 数据采集 */ define('IS_API', basename(__FILE__, '.php')); // 项目标识 define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); // 该文件的名称 require('../index.php'); // 引入主文件
新建:./dayrui/My/Api/Caiji.php
<?php $this->_module_init('news'); // news 是模块目录 if ($_GET['action'] == 'category') { // 显示栏目 foreach ($this->module['category'] as $t) { if ($t['child'] == 0 && $t['tid'] == 1) { echo '<h1>'.$t['name'].'<=>'.$t['id'].'</h1>'.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')); $cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data_0')); $cache && $fields[0] = array_merge($fields[0], $cache); // 去重复 $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; $save[1]['link_id'] = 0; $save[1]['comments'] = 0; $save[1]['avgsort'] = 0; $save[1]['inputtime'] = $save[1]['updatetime'] = SYS_TIME + rand(0, 7200); $save[1]['inputip'] = '127.0.0.1'; // 验证标题重复 if ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $save[1]['title'])->counts()) { echo '重复';exit; } $rt = $this->content_model->save(0, $save); if ($rt['code']) { exit('成功'); } else { exit('失败'); } } exit;
脚本文件中可以定义发布者等一些预定义字段默认值,如果你不会php的话可以保持默认
然后关闭系统的跨站提交验证。
二、火车采集器编写web发布规则
三、新建一个在线发布模块
四、填写获取栏目列表的参数
按照上面的格式写就ok了
五、内容发布规则参数
发布地址:按照上面的就ok 表单参数:这里是你采集的字段 成功标志码:成功
表单参数:这里可以配置任意自定义字段的入库,不知道入库格式怎么办?
查看数据库储存数据格式进行入库处理,必要时需要在接口文件中重新编程
六、保存模块
七、然后返回web发布配置里面
按照图中的参数配置,点“获取栏目”,如果可以获取到就表示成功了一大半了
八、测试入库发布
九、后台查看采集内容