dede采集为何无内容?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 DEDE建站 正文

核心排查思路:

采集流程可以简化为:采集规则 -> 采集运行 -> 数据入库 -> 前台显示。 问题就出在这四个环节中的某一个或多个。

dede采集的没内容
(图片来源网络,侵删)

第一步:检查采集规则(最关键的一步)

采集规则是采集的“说明书”,如果说明书错了,后面全错。

采集规则匹配是否准确?

  • 检查列表页规则:

    • 列表网址:网址是否正确?是否需要登录才能访问?(如果需要,请先在Dede后台登录目标网站,或将Cookie填入高级选项中)。
    • 列表范围:是否正确地圈定了要采集的文章列表?用浏览器打开目标网址,按F12,找到对应的列表区域,看看规则里的<li><div class="article">等标签选择器是否准确。
    • 分页规则:是否设置了正确的分页?/list-1-{page}.html,如果目标网站没有分页,或者分页方式不同,这里就会出错。
  • 页规则(这是“没内容”的重灾区):

    • 内容网址:列表页规则生成的内容页链接是否正确?点击“测试”按钮,看生成的链接是否能正常打开文章。
    • 、时间等字段规则
      • 内容正文:这是最核心的,用浏览器打开一篇具体页,按F12,找到正文区域的起始和结束标签(比如<div class="post-content">...</div>),然后回到Dede采集规则,确保“内容”字段的选择器完全匹配,包括层级关系,网站更新了,标签结构变了,你的规则就失效了。
      • 去除广告/无关内容:你是否勾选了“使用简介作为内容”或者设置了“去除HTML标签”?规则匹配到了广告或者页脚等无关区域,导致采集到的内容为空或为乱码。
      • :如果目标文章是分页的(下一页”),你是否在“分页”标签里设置了正确的规则?如果没设置,只能采集到第一页的内容。

高级选项设置

  • 是否需要登录?:如果目标网站需要登录,勾选“需要登录”并填写正确的用户名、密码和登录地址。
  • 编码设置:确保网站的“目标编码”和“保存编码”设置正确,目标网站是UTF-8,而你的Dede是GBK,就需要在高级选项里进行转换。
  • Cookie:有些网站通过Cookie验证身份,需要在高级选项里手动复制浏览器里的Cookie值。

第二步:检查采集运行过程

规则看起来没问题,但在运行时也可能出错。

dede采集的没内容
(图片来源网络,侵删)

运行采集

  • 不要直接“开始采集”,先点击“测试采集”。
  • 在测试结果页面,仔细观察:
    • 是否成功匹配到文章列表? 如果列表里显示“共0条”,说明列表页规则错了。
    • 是否成功获取到文章标题和内容? 点击“获取内容”按钮,手动测试几篇文章,看标题、内容、图片等是否都正确获取到了,如果这里就显示“无内容”,那100%是内容页规则的问题。
    • 是否有错误提示? 注意看页面底部的错误日志,Dede有时会给出具体的错误信息,如“连接超时”、“页面无法打开”等。

网络和环境问题

  • 目标网站是否可访问? 确保目标网站没有被墙,或者没有设置反爬虫机制导致你的服务器IP被临时屏蔽。
  • Dede服务器环境:PHP的allow_url_fopencurl功能是否开启?这些是Dede采集依赖的基础函数,可以联系你的空间商确认,或者自己在Dede后台的“系统” -> “系统基本参数” -> “核心设置”里查看远程文件保存是否开启。

第三步:检查数据入库和显示

采集成功,但前台看不到,问题出在入库或显示环节。

检查“待审核”或“采集成功”的文档

  • 采集完成后,不要直接去前台看,先去Dede后台的“” -> “采集” -> “采集结果”。
  • 你应该能看到刚刚采集到的文章列表。
  • 检查文章状态:文章状态是“已审核”还是“待审核”?如果是“待审核”,那前台当然看不到,你需要手动审核,或者修改采集选项,默认设置为“已审核”。
  • 检查文章内容:点击“编辑”,进入文章修改页面,直接看内容正文框里的文字和图片是不是都正常,如果这里就是空的,那说明入库时出错了。

检查入库后的数据

  • 采集结果”里内容正常,但前台还是没内容,问题可能出在模板上。
  • 检查栏目模板:进入对应的栏目,检查“栏目管理” -> “更改栏目” -> “模板”,确认模板文件(通常是 article_list.htm)是否存在,并且里面的内容调用标签 {dede:list}{dede:arclist} 是否正确。
  • 检查文章页模板:如果列表页有,但点进去文章页没内容,检查“系统” -> “系统基本参数” -> “核心设置”里的“页模板”(默认是 article_article.htm),并确保模板里有 {dede:field.body/} 标签来调用文章正文。

第四步:检查DedeCMS本身和插件冲突

Dede版本问题

  • 你使用的DedeCMS版本是否过旧?一些旧版本存在已知的Bug,可能导致采集失败,可以考虑升级到稳定版本,但升级前务必备份数据库和文件!

插件或代码冲突

  • 你是否安装了其他与采集、内容过滤相关的插件?这些插件可能会在采集后自动过滤掉内容,导致前台无显示,可以尝试暂时禁用所有非核心插件,再进行一次测试采集。

安全软件或防火墙

  • 服务器或本地电脑上的杀毒软件、防火墙是否阻止了Dede的采集进程?可以临时关闭它们进行测试。

总结与排查清单

当遇到“Dede采集没内容”时,请按以下清单逐一排查:

  1. 【规则检查】 重新核对内容页正文的选择器,用浏览器F12工具精确匹配。
  2. 【运行测试】 先用“测试采集”功能,手动测试几篇文章,看能否在后台获取到内容。
  3. 【后台检查】 采集后,去“采集结果”里查看,确认文章已生成且内容不为空,状态为“已审核”。
  4. 【前台检查】 如果后台有内容,检查栏目和文章页的模板标签是否正确。
  5. 【环境检查】 确认目标网站可访问,服务器PHP环境(allow_url_fopen, curl)正常。
  6. 【冲突排查】 尝试禁用插件,检查是否有其他程序干扰。

按照这个流程,90%以上的“采集没内容”问题都能被解决,如果问题依然存在,请提供更详细的信息,

  • 你采集的是什么类型的网站(新闻、博客、论坛)?
  • 采集规则中,内容页的选择器大概是什么样的?
  • 采集后,在“采集结果”里能看到文章吗?内容是空还是有乱码?
  • 后台审核后,前台访问时是完全空白,还是显示“无内容”?

提供这些信息,我可以给你更精确的指导。

dede采集的没内容
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
C语言如何用FFmpeg实现解码?
« 上一篇 04-05
C语言如何高效处理Object对象?
下一篇 » 04-05

相关文章

取消
微信二维码
支付宝二维码

目录[+]