dede采集不到内容怎么办?

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

第一步:检查基础设置(最常见的原因)

这是最容易出错的地方,请务必仔细核对。

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

采集规则设置错误

这是最核心的部分,在“采集” -> “管理采集节点”中,编辑你的采集节点,检查以下几项:

  • 目标网址列表:

    • 格式是否正确? 确保网址是完整的,http://www.example.com/list/1.html,而不是 http://www.example.com/list/
    • 列表网址是否有效? 手动在浏览器中打开几个网址,确认它们能正常显示列表页内容,并且内容是你想要的。
    • 列表网址是否唯一? 确保列表页之间有规律可循,并且URL是唯一的。
  • 列表规则:

    • 起始标记和结束标记是否准确?
      • 方法一(推荐): 点击“选择范围”按钮,然后用鼠标在后台列表页面上框选出包含所有列表项的区域,这是最准确的方法。
      • 如果手动填写,请务必检查标记是否包含了多余的HTML标签(<div class="list"></div>),或者是否漏掉了关键的标签。
    • 内容链接规则:
      • 链接标记是否正确? 同样,使用“选择范围”功能,精确框选出列表项中的 <a> 标签,确保选中的是整个 <a href="...">...</a>
      • 链接地址是否完整? 如果列表页中的链接是相对路径(如 /article/123.html),你需要在“附加网址”中补全域名,http://www.example.com,如果已经是绝对路径,则留空。
  • 内容规则:

    dede采集不到内容
    (图片来源网络,侵删)
    • 区域: 这是最最关键的一步!点击“选择范围”,然后用鼠标在浏览器中的目标文章页面上框选出包含、作者、来源、发布时间、内容的区域。
      • 常见错误: 框选的范围太小(只框了正文文字)或太大(包含了页头、页脚、导航栏、广告等无关内容),范围过大或过小都会导致采集失败或内容混乱。
      • 技巧: 尽量选择一个能包裹所有核心内容的父级 <div><div class="article-content">...</div>
    • 分页处理:
      • 如果文章有分页,必须勾选“处理内容分页”。
      • 起始标记和结束标记: 使用“选择范围”功能,框选出分页链接所在的区域,<div class="page">...</div>
      • 内容页链接规则: 框选出分页链接中的 <a> 标签,确保能正确识别下一页的地址。
    • 去除广告/无用代码:
      • 规则中,可以设置去除特定ID或Class的标签,例如去除广告 <div id="ad">...</div>,这能保持采集内容的纯净。

采集任务配置

在“采集” -> “采集管理”中,检查你的采集任务:

  • 目标网站编码: 这是个致命的错误点!
    • 如何检查: 在浏览器中打开目标文章页,右键选择“编码”,查看当前页面的编码是什么(通常是“UTF-8”或“GBK”)。
    • 如何设置: 在DedeCMS的采集节点设置中,确保“目标网站编码”与网站的实际编码一致,如果采集的是GBK编码的网站,而你后台是UTF-8,就需要设置为gb2312gbk
  • 发布栏目: 确保你选择的发布栏目是存在的,并且你有发布权限。
  • 作者/来源: 设置你希望自动填充的默认作者和来源。
  • 是否启用: 确保采集任务的状态是“启用”。

第二步:检查DedeCMS系统环境

如果规则设置无误,那么问题可能出在系统环境上。

服务器环境

  • PHP函数限制: 采集主要依赖PHP的file_get_contents()curl函数。
    • 检查方法: 在DedeCMS后台,进入“系统” -> “系统基本参数” -> “核心设置”,查看“远程文件获取方式”。
    • 解决方案:
      • 如果选择curl,请确保你的PHP环境开启了curl扩展,可以通过 phpinfo() 函数来检查。
      • 如果选择file_get_contents,请确保allow_url_fopen选项在php.ini中是On状态。
      • 如果两者都失败,可能是服务器禁用了这些函数,需要联系你的空间服务商或服务器管理员来开启。

权限问题

  • data目录权限: DedeCMS需要向data目录写入缓存文件,请确保data目录及其子目录(如cache)的权限设置为755777(777有安全风险,建议先用755,不行再试777)。
  • 目标目录权限: 确保你设置的“发布栏目”对应的目录在/uploads//special/下有写入权限(同样是755或777)。

模板问题

  • 内容页模板: 确保你为发布栏目设置了正确的文章内容页模板(通常是 article_article.htm),如果模板不存在或有严重错误,也可能导致发布失败,看起来就像采集不到。

第三步:使用DedeCMS内置的调试工具

DedeCMS提供了一个非常强大的调试功能,能帮你快速定位问题。

  1. 在“采集管理”中,找到你的采集任务。
  2. 在任务操作栏,点击 “调试” 按钮。
  3. 在弹出的调试页面中:
    • 测试列表规则: 输入一个列表页URL,点击“测试列表规则”,它会告诉你找到了多少条列表,并列出每条列表的标题和链接,如果这里就失败了,说明你的列表规则100%有问题。
    • 规则: 从上一步测试成功的列表中,选择一条链接,点击“测试内容规则”,它会模拟抓取这篇文章,并显示它解析出的、分页等信息。
      • 、内容都显示正常, 那么你的内容规则就是正确的。
      • 如果显示为空或乱码, 那就是你的内容规则网站编码设置错了。

这个调试工具是排查采集问题的利器,请务必善用它。

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

第四步:其他可能的原因

  • 网站反爬虫机制: 目标网站可能设置了反爬虫措施,直接拒绝来自服务器的请求。
    • 解决方法: 在采集节点的高级设置中,尝试设置一个“伪造来源”(http://www.google.com)或“伪造用户代理”(UA,Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...),这可以模拟浏览器访问,降低被屏蔽的概率。
  • URL中包含特殊字符: 如果目标网址包含 &、 等特殊字符,可能会导致规则匹配失败,尝试在列表规则中使用更灵活的匹配方式。
  • DedeCMS版本问题: 如果你使用的是非常古老的DedeCMS版本,可能存在已知的采集Bug,尝试升级到最新的稳定版本。

排查流程建议

遇到“DedeCMS采集不到内容”时,请按照以下顺序进行排查:

  1. 使用“调试”工具: 这是最快的方法,先测试列表规则,再测试内容规则,根据调试结果直接定位问题环节。
  2. 核对编码: 检查“目标网站编码”是否正确,这是导致乱码和采集失败的头号元凶。
  3. 检查规则范围: 重新用“选择范围”功能,精确框选列表区域和内容区域,确保范围恰到好处。
  4. 检查服务器环境: 确认PHP的file_get_contentscurl功能是否可用。
  5. 检查目录权限: 确保data和目标上传目录有写入权限。
  6. 考虑反爬虫: 如果以上都正常,可能是目标网站的限制,尝试伪造UA和来源。

按照这个流程,90%以上的采集问题都可以得到解决,祝您顺利!

-- 展开阅读全文 --
头像
织梦获取文章关键词
« 上一篇 04-30
dede评论模板如何制作?
下一篇 » 04-30

相关文章

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

目录[+]