dede采集不本地化怎么办?

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

“本地化”在DedeCMS采集中的确切含义

dede采集不本地化
(图片来源网络,侵删)

这里的“本地化”不是指将采集到的内容翻译成你的网站语言,它特指 “将采集到的外部图片、视频等资源文件,下载到你自己的服务器上,并修改文章内容中的链接,使其指向你服务器上的新地址”

采集不本地化”就意味着:DedeCMS在采集文章时,只复制了文章的文字内容,但文章中引用的图片、视频等资源的链接,仍然是指向原始网站的链接。


为什么“不本地化”是致命的?(坏处)

强烈不建议你使用“不本地化”的采集方式,原因如下:

  1. 网站访问极不稳定,随时可能失效

    dede采集不本地化
    (图片来源网络,侵删)

    如果原始网站的图片服务器宕机、更换域名、删除了该图片或者关闭了网站,你网站上所有引用该图片的文章都会显示“图片不存在”(裂图),你的网站内容将变得残缺不全。

  2. 网站打开速度慢,用户体验差

    用户访问你的网站时,浏览器需要去别人的服务器下载图片,这会大大增加你网站的加载时间,导致访问速度变慢,用户很容易流失。

  3. 消耗大量服务器资源(盗链)

    dede采集不本地化
    (图片来源网络,侵删)
    • 虽然图片在别人的服务器上,但访问你网站的用户流量,却实实在在地消耗着别人的服务器带宽和资源,这被称为“盗链”,如果对方网站设置了防盗链机制,你的图片就会无法显示。
  4. 不利于SEO搜索引擎优化

    • 内容重复性高:搜索引擎可能会认为你的内容是直接复制过来的,而不是原创的,从而降低你网站的权重。
    • 页面加载速度慢:网站速度是SEO排名的重要指标之一,慢速的网站很难获得好的排名。
    • 用户体验差:裂图和慢速的网站会导致用户跳出率高,这也是一个负面SEO信号。
  5. 版权风险

    直接使用他人网站的图片和资源,可能涉及侵犯版权问题,虽然国内很多网站对此监管不严,但这始终是一个潜在的风险。


如何让DedeCMS采集“本地化”?(解决方案)

“本地化”是DedeCMS采集功能的核心和默认行为,如果你发现采集不本地化,通常是以下几个原因导致的,请逐一排查和设置:

检查采集规则中的“远程图片是否本地化”选项

这是最直接、最常见的原因。

  • 操作路径:在DedeCMS后台,进入 采集 -> 采集管理,找到你设置好的采集规则,点击后面的“选择+修改”进入修改页面。
  • 关键设置:在修改规则的页面,找到“远程是否保存本地”这个选项。
    • 请务必选择 “是”
    • 注意:这个选项有时会被默认勾选,但如果你之前修改过规则,可能被意外取消,请再次确认。

检查DedeCMS的全局系统参数设置

确保DedeCMS系统默认开启了图片本地化功能。

  • 操作路径:在DedeCMS后台,进入 系统 -> 系统基本参数
  • 关键设置
    • 点击“附件设置”选项卡。
    • 找到“远程图片是否保存本地”,确保选择 “是”
    • 找到“远程站点域名”,这里可以填写你允许从哪些域名下载图片(留空则允许所有),如果填写了,而你的目标网站不在这个列表里,也可能导致失败。
    • 非常重要:检查“保存目录”设置,确保你的服务器目录有写入权限,并且空间足够。

检查采集规则中的“处理数据”环节

在采集规则中,有一个“处理数据”的步骤,这里是进行内容替换和本地化的关键。

  • 操作路径:在修改采集规则的页面,切换到“处理数据”标签页。
  • 关键设置
    • 确保你已经设置了“保存”操作,并且对应的“内容主表”(如dede_archives)和“附加表”(如deda_addonarticle)字段填写正确。
    • 在“内容过滤”部分,确保“替换为空”的规则没有错误地过滤掉 <img>
    • 高级技巧:在“内容替换”部分,你可以手动添加规则,比如将 <img src="http://old.com/ 替换为 <img src="http://yourdomain.com/uploads/,但这通常是不必要的,因为DedeCMS会自动处理,如果自动处理失败,这里可以作为备用方案。

检查服务器环境和权限

这是最容易被忽略,但也是最根本的原因之一。

  • 目录权限:确保DedeCMS的 uploads 目录及其所有子目录(如 uploads/allimg/)拥有可写权限(权限值通常为 755777),你可以通过FTP客户端或服务器的文件管理器来修改。
  • PHP函数支持:确保你的PHP环境开启了 allow_url_fopencurl 扩展,DedeCMS采集图片主要依赖这两个功能,你可以在 php.ini 文件中检查并开启它们。
    • allow_url_fopen = On
    • 确保 extension=php_curl.dll (Windows) 或 extension=curl.so (Linux) 前面的分号 已去掉。

检查目标网站的反爬虫机制

一些网站有很强的反采集措施,可能会阻止DedeCMS获取图片内容,导致本地化失败。

  • 解决方案
    • 增加采集延迟:在采集规则中设置“每次采集间隔时间”(例如1-3秒),模拟人工操作,避免被封禁。
    • 使用代理IP:如果条件允许,可以使用代理IP池进行采集。
    • 更换User-Agent:在采集规则的高级设置中,可以自定义User-Agent,伪装成不同的浏览器。

总结与排查清单

如果你遇到“DedeCMS采集不本地化”的问题,请按照以下清单进行排查:

  1. 【首要检查】 采集规则修改页面 -> 远程是否保存本地 -> 选择“是”
  2. 【系统检查】 系统基本参数 -> 附件设置 -> 远程图片是否保存本地 -> 选择“是”
  3. 【权限检查】 确认 uploads 目录及其子目录有可写权限
  4. 【环境检查】 确认PHP开启了 allow_url_fopencurl 功能。
  5. 【目标网站检查】 尝试降低采集频率,或更换规则。
  6. 【手动测试】 可以手动复制一篇包含图片的文章链接,使用DedeCMS的“一键采集”功能,看是否能成功本地化图片,这有助于快速定位问题出在规则上还是系统环境上。

通过以上步骤,你应该能够解决绝大多数DedeCMS采集不本地化的问题,请务必记住,本地化是保证网站长期稳定、健康发展的基石

-- 展开阅读全文 --
头像
织梦删除文章失败,原因何在?
« 上一篇 04-04
dede二级导航菜单如何实现?
下一篇 » 04-04

相关文章

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