下面我将从原理、详细步骤、高级技巧、常见问题四个方面进行全方位的讲解。

(图片来源网络,侵删)
核心原理:它们是如何协同工作的?
在开始操作前,理解其工作原理至关重要,这能帮助你更好地配置和排查问题。
-
火车头采集器:
- 角色:数据抓取的“工人”,它负责模拟浏览器访问目标网站,分析网页结构,按照你设定的规则提取所需的数据(如文章标题、内容、图片、作者等),并将这些数据整理成标准格式。
- 输出:火车头本身不直接生成网站内容,它的核心输出是两种格式的数据文件:
.txt文件:纯文本格式,每行一条记录,字段之间用特定的符号(如 或 )分隔,这是最基础的格式。.csv文件:表格格式(用逗号或制表符分隔),可以用 Excel 打开,非常直观,也方便其他程序处理。
-
DedeCMS 5.7:
- 角色的“管家”和“发布者”,它是一个内容管理系统,负责管理网站的数据结构(栏目、模型等)、展示内容和用户交互。
- 关键功能:DedeCMS 提供了一个强大的“采集”功能模块,这个模块可以读取火车头生成的
.txt或.csv文件,并按照你预先设定的规则,将数据自动导入到网站的数据库中,最终生成静态或动态的 HTML 页面。
工作流程图:

(图片来源网络,侵删)
[目标网站] <--(火车头抓取)--> [火车头采集器] --(生成 .txt/.csv 文件)--> [DedeCMS后台] --(导入数据)--> [网站数据库] --(生成页面)--> [你的网站]
火车头负责“采”,DedeCMS 负责“种”。
详细操作步骤(保姆级教程)
整个过程分为三大步:采集任务配置、数据文件生成、DedeCMS 导入。
第一步:在火车头采集器中配置采集任务
-
创建采集任务:
- 打开火车头采集器,点击“文件” -> “新建任务”,或直接点击工具栏的“新建任务”按钮。
- 给任务起一个名字,XX新闻采集”。
-
设置任务参数:
- 起始网址:输入你想要采集的网站列表页或首页 URL。
- 编码:选择目标网站的字符编码,通常是
UTF-8或GBK。务必与 DedeCMS 的数据库编码保持一致,否则会出现乱码。 - 列表页:这是火车头如何找到所有文章页面的关键。
- 获取规则:选择“分页”或“链接”。
- 网址:如果列表页有分页(如
list_1.html,list_2.html...),可以设置分页范围。 - 链接提取:在列表页的源码中,找到文章标题链接的规律,用正则表达式或 XPath 提取出来,文章链接都在
<a class="title" href="...">标签里,你就可以设置规则提取href属性的值。
-
设置字段采集规则:
- 这是核心中的核心,点击“字段”标签页,添加你需要采集的字段。
- 通用字段:
- 在文章页面源码中,找到标题标签(如
<h1>,<title>,<span class="article-title">),使用正则或 XPath 提取其内容。 - 找到文章正文所在的
<div>或<table>等容器,提取其所有 HTML 代码,这是最复杂的部分,需要处理广告、无关链接等。 - 作者:同样在源码中定位作者信息。
- 发布时间:定位时间格式。
- 栏目:这个非常重要!你需要告诉火车头,这篇文章应该归到哪个栏目,可以通过 URL 路径判断(如
/news/归到“新闻”栏目),或者在规则里写死一个默认栏目。 - 关键字/摘要:可以设置为“截取标题前N个字符”或从内容中提取。
- 在文章页面源码中,找到标题标签(如
- 图片处理:
- 字段规则中,勾选“下载远程图片到本地”。
- 设置本地保存路径(如
/uploads/images/)。 - 设置图片替换规则(可选),可以将远程图片地址替换为本地地址。
- 自定义字段:如果你的 DedeCMS 模型有自定义字段(如
video,download_url),也需要在这里添加对应的采集规则。
-
保存与测试:
- 保存任务。
- 先点击“采集测试”,选择几条列表链接,看看能否正确抓取到标题、内容等,反复调整规则,直到测试结果满意。
-
执行采集并导出:
- 点击“开始采集”,让火车头运行任务。
- 采集完成后,不要直接发布到网站,点击“导出数据”。
- 在弹出的窗口中:
- 选择导出格式:
TXT或CSV(推荐 CSV,更直观)。 - 选择字段:确保你需要的所有字段都被勾选。
- 选择文件保存位置。
- 点击“导出”,得到一个数据文件(如
dedecms_data.csv)。
- 选择导出格式:
第二步:在 DedeCMS 5.7 中准备接收数据
-
确保栏目匹配:
- 登录 DedeCMS 后台。
- 检查“核心” -> “栏目管理”,确保火车头采集时指定的栏目(无论是通过规则判断还是写死的)在 DedeCMS 中已经存在,并且栏目类型为“普通栏目”。
-
检查模型匹配:
- 默认情况下,DedeCMS 的文章模型包含标题、内容、作者、来源、发布时间等字段。
- 如果你在火车头采集了自定义字段,需要在 DedeCMS 后台“核心” -> “内容模型管理” -> “添加内容模型”来创建新的模型,并添加对应的字段,否则,自定义字段的数据将无法保存。
-
获取导入接口文件:
- DedeCMS 有一个专门的文件用于接收火车头等工具导入的数据。
- 通过 FTP 或服务器文件管理器,找到
/include/dedecollection/目录。 - 里面的
config_collection.php文件就是配置文件,index.php就是处理导入的入口文件。请确保index.php文件存在且可访问。
第三步:在 DedeCMS 后台导入数据
-
进入采集模块:
- 登录 DedeCMS 后台,点击“核心” -> “采集”。
-
导入火车头数据:
- 在左侧菜单选择“导入火车头数据”。
- 选择数据文件:点击“浏览”,选择你在火车头导出的
.txt或.csv文件。 - 文件格式:根据你导出的文件类型选择(TXT 或 CSV)。
- 字段分隔符:如果是 CSV 文件,需要选择分隔符,通常是逗号 或制表符
\t,如果不确定,可以先选一个,预览一下数据是否对齐。 - 数据表:选择
dede_archives(文章主表)。 - 栏目对应:这是最关键的一步!
- 字段对应:你需要将火车头导出的文件中的“列”与 DedeCMS 数据库中的“字段”一一对应起来,文件中的“标题”列对应
dede_archives表的title字段,内容列对应body字段,仔细核对,不要搞错。 - 栏目ID对应:如果你的文件里有栏目字段,需要将文件中的栏目名称(或ID)与 DedeCMS 中的真实栏目 ID 对应起来,如果文件里没有栏目字段,你可以在这里设置一个“默认栏目ID”。
- 字段对应:你需要将火车头导出的文件中的“列”与 DedeCMS 数据库中的“字段”一一对应起来,文件中的“标题”列对应
- 点击“开始导入”。
-
等待完成:
- 系统会开始解析文件并逐条导入数据,导入过程可能需要一些时间,取决于数据量。
- 导入完成后,你会看到成功和失败的数量统计。
-
检查网站:
回到网站前台,检查栏目和文章是否已经成功发布,图片是否正常显示,内容格式是否正确。
高级技巧与注意事项
-
反爬虫策略:
- IP 封禁:频繁采集会导致你的 IP 被目标网站封禁,解决方案:
- 使用代理 IP:火车头支持代理服务器,可以轮换 IP。
- 降低采集频率:在火车头任务设置中,增加“请求间隔时间”(如 2-5 秒)。
- 分散采集:不要长时间连续采集一个网站。
- 验证码:如果遇到验证码,火车头企业版有打码接口支持,个人版则比较困难,可能需要手动干预或更换目标。
- IP 封禁:频繁采集会导致你的 IP 被目标网站封禁,解决方案:
-
内容去重:
- DedeCMS 导入时,可以设置一个重复检测规则,比如按标题或文章内容 MD5 值检测,如果发现重复,可以选择“跳过”或“覆盖”,避免发布重复内容。
-
内容过滤与替换:
- 在火车头的字段规则中,可以使用“替换”功能,批量替换掉文章中的广告代码、无关链接、特定词语等。
- 在 DedeCMS 的“采集”模块中,也有“内容过滤”功能,可以设置正则表达式来过滤不需要的内容。
-
数据清洗:
- 从火车头导出的数据可能格式不完美(如多余空格、换行符),可以在导入前,用 Excel 或文本编辑器对
.csv文件进行预处理,确保数据干净。
- 从火车头导出的数据可能格式不完美(如多余空格、换行符),可以在导入前,用 Excel 或文本编辑器对
-
版权问题:
- 最重要的一点:采集他人内容可能涉及版权和法律风险,请务必遵守目标网站的
robots.txt协议和版权声明,建议仅用于学习测试,或采集明确允许转载的内容,并在发布时注明来源。
- 最重要的一点:采集他人内容可能涉及版权和法律风险,请务必遵守目标网站的
常见问题与排查
-
Q1: 导入后全是乱码怎么办?
- A1: 90% 的原因是编码不一致,请检查:火车头任务的编码、DedeCMS 数据库的编码(
dede_sysconfig表中的cfg_soft_lang)、以及导出文件的编码,三者必须统一,全部为UTF-8或全部为GBK。
- A1: 90% 的原因是编码不一致,请检查:火车头任务的编码、DedeCMS 数据库的编码(
-
Q2: 图片无法显示或路径错误?
- A2:
- 检查火车头是否勾选了“下载远程图片到本地”。
- 检查火车头和 DedeCMS 的图片上传目录是否正确。
- 检查 DedeCMS 后台“系统” -> “系统基本参数” -> “附件设置”中的“附件目录是否为绝对地址”选项。
- A2:
-
Q3: 导入失败,提示“字段不匹配”或“栏目不存在”?
- A3:
- 字段不匹配:回到 DedeCMS 的“导入火车头数据”页面,仔细检查“字段对应”部分的设置,确保文件列名和数据库字段名一一对应。
- 栏目不存在:检查 DedeCMS 栏目管理中是否有该栏目,或者栏目ID是否填写错误,如果火车头文件里没有栏目信息,记得在导入页面设置一个“默认栏目ID”。
- A3:
-
Q4: 火车头采集规则怎么都调不对?
- A4: 采集规则是难点,建议多学习正则表达式和 XPath,一个技巧是:在浏览器中打开目标文章页,右键“查看网页源代码”,然后在源码中直接复制你需要的内容,观察它前后的标签和规律,再据此编写规则,火车头的“采集测试”功能是你的好朋友,多测试多调整。
希望这份详细的指南能帮助你成功使用火车头采集器和 DedeCMS 5.7 搭建自己的网站!
