|
发表于 2007-9-8 22:11:32
|
显示全部楼层
dedecms4.0入库教程.
*/版权信息
火车头版本:火车采集器3.1版
程序名称: dedecms4.0
环境搭建: APMServ 5.2.0 (Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27&4.0.26、SQLite、ZendOptimizer、 OpenSSL、phpMyAdmin、SQLiteManager,以及ASP、CGI、Perl网站服务器平台的绿色软件。)
针对对象:火车中高级用户
需要条件:1、独立写采集规则(本部分不负责讲解规则编写等内容)
2、熟悉phpmyadmin操作及mysql基础信息
编写者: 诡谲 http://www.nicelover.cn
编写鸣谢: 天毅 (503503506)
版权所有: 诡谲&天毅
*/教程开始...
由于最近一段时间火车头采集数据到dedecms经常会出错.所以我就学了直接入库的方法.当然这一切都是天毅在帮忙.我之前也是对入库问题多多的.这次写这教程完全是为了服务大家..希望大家采集数据时能够快点.当然这省了国家的电费.也促进了垃圾站的发展!
废话不多说.天毅使用采集入库时的数据库类型是mysql4.0.而我用的是5.0..所以在mysql版本上应该不存在冲突.我这里所用的环境是Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27、ZendOptimizer.
首先打开
"全局数据库导出方式定义".新建连接..选择"mysql数据库"
在数据库主机那里填入相关信息.(虚拟主机可能不让你外链.所以需要在本机架设)
然后选择表
勾选"dede_addonarticle"和"dede_archives"
进入下一步
这里全选"dede_addonarticle"数据表中的所有字段
选择"dede_archives"数据表中的
typeid
channel
arcrank
title
writer(*)
source(*)
pubdate(*)
senddate(*)
arcatt
adminID
注:"ID"一定要去掉.
(*):这些字段不是必需.根据你自己的所需的入库为根据.比如你不想把作者添加入库.则不要勾选"writer".
也许你需要关键词.那就选上keyword 以此类推.
选择好了之后进入下一步..
在这里把"对应采集内容"填上即可.
aid → [文章编号:dede_addonarticle]
typeid → [标签:ID] (这里需要在火车头采集器那里定义.)
body → [标签:内容]
typeid → [标签:ID] (这里需要在火车头采集器那里定义.)
channel → 1 (对应关系:1为文章系统)
arcrank → 0 (对应关系:0(开放浏览) -1(待审核稿件) 10(注册会员) 50(中级会员) 100(高级会员) 默认为0)
title → [标签:标题]
writer → [标签:作者]
source → [标签:出处]
pubdate → [标签:时间] (此处需要到火车头采集器那里定义.这里使用时间戳)
senddate → [标签:时间] (此处需要到火车头采集器那里定义.这里使用时间戳)
arcatt → 0 (对应关系:0(普通文档) 1(滚动显示) 2(头条推荐) 3(幻灯片显) 默认为0)
adminID → 1 (对应关系:1为admin用户的名称)
然后保存即可.,
然后进入火车头采集器
这里不说明规则.这里只说入库操作
这里只说要求更改两个地方
在原有规则的基础上添加一个标签及改一个标签.
一个是添加"ID"标签.另一个是改"时间"标签.选择"系统时间戳"
注:添加"ID"标签是为了能够在任务那里定义需要发布的栏目ID...对应上面说的.
改为时间戳.是在天毅的基础上改的.他那个方法比较烦琐.而且时间是固定不变的.如果这么定义之后.每次入库的时间都将是同一个时间.而选用系统时间戳是能够用当前系统的时间作为发布时间.
然后定义发布方式.这里选择"导入自定义数据库"
......
那么开始采集入库
很多人会问.这样采集会有错误.就是这个"出现错误 表6-错误信息"
这个不用管.数据库里面已经有数据加入.
采集后再在dede后台生成html即可.
至此.采集入库教程全部完成
但是还有个地方希望火车头以后的版本能注意一下.
就是关于采集时间的时效性问题.其实并不是全部的人都拿火车头做垃圾站.所以一些信息对浏览者来说是具有时效性的
很多浏览者对与时间是很过敏的.所以希望下一个版本或将来的版本能做到把采集的时间信息转换为时间戳.
但是很多人会问.并不是所有的被采集网站的时间都是一样的.但是可以想想.时间也可以通过过滤(或替换)的形式完成.与内容的过滤(或替换)差不多.
比如:被采集网站的时间是:2007.07.07 这个时间可以把"."替换成"-"这样也可以被转化成时间戳的形式.2007-07-07
像本教程里所涉及的时间那里.我是做了个取舍的办法.用了系统时间戳.因为实在找不到能过完成把采集的时间也入库的方法.或许是我的办法不行,那么希望会的朋友能帮忙一下
这里我有个想法.就是通过创建php脚本的形式达到转化的过程(把时间转换成时间戳!)
也及是在dedecms的数据库中的"dede_archives"这个数据表中添加"time"的字段.把采集到的时间采到此字段内.然后通过php脚本达到取出"time"的数据.并将其覆盖到"pubdate"该字段中去.但是我不知道如何连接dede数据库
希望会的朋友帮忙完成.
附:
转换成时间戳的php脚本
复制内容到剪贴板代码:
function str_format_time($timestamp = ''){
if (preg_match("/[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} (0[0-9]|1[0-9]|2[0-3])[0-5][0-9])[0-5][0-9])/i", $timestamp)) {
list($date,$time)=explode(" ",$timestamp);
list($year,$month,$day)=explode("-",$date);
list($hour,$minute,$seconds )=explode(":",$time);
$timestamp=gmmktime($hour,$minute,$seconds,$month,$day,$year);
}else{
$timestamp=time();
}
return $timestamp;
}
完成.
教程地址: http://www.nicelover.cn/dede_to_mysql.htm (在线观看地址)
如果查看不到的话就下载吧(只提供5天.5天后无法下载请到我的博客去单线程防盗链下载)
下载 http://www.nicelover.cn/dede_to_mysql.swf(请使用快车下载)
http://www.nicelover.cn/read-67.html
另外提供一个免费美国空间.里面放了该动画
在线观看地址: http://www.guijad.cn/dede_to_mysql.htm (在线观看地址)
下载地址: http://www.guijad.cn/dede_to_mysql.swf(请使用快车下载)
这个就不知道能用多久了.大家下吧.速度也不会很慢..因为我的站资源有限.所以实在不好意思各位.
希望下载的朋友帮忙分流 |
|