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

这里的“本地化”不是指将采集到的内容翻译成你的网站语言,它特指 “将采集到的外部图片、视频等资源文件,下载到你自己的服务器上,并修改文章内容中的链接,使其指向你服务器上的新地址”。
“采集不本地化”就意味着:DedeCMS在采集文章时,只复制了文章的文字内容,但文章中引用的图片、视频等资源的链接,仍然是指向原始网站的链接。
为什么“不本地化”是致命的?(坏处)
强烈不建议你使用“不本地化”的采集方式,原因如下:
-
网站访问极不稳定,随时可能失效
(图片来源网络,侵删)如果原始网站的图片服务器宕机、更换域名、删除了该图片或者关闭了网站,你网站上所有引用该图片的文章都会显示“图片不存在”(裂图),你的网站内容将变得残缺不全。
-
网站打开速度慢,用户体验差
用户访问你的网站时,浏览器需要去别人的服务器下载图片,这会大大增加你网站的加载时间,导致访问速度变慢,用户很容易流失。
-
消耗大量服务器资源(盗链)
(图片来源网络,侵删)- 虽然图片在别人的服务器上,但访问你网站的用户流量,却实实在在地消耗着别人的服务器带宽和资源,这被称为“盗链”,如果对方网站设置了防盗链机制,你的图片就会无法显示。
-
不利于SEO搜索引擎优化
- 内容重复性高:搜索引擎可能会认为你的内容是直接复制过来的,而不是原创的,从而降低你网站的权重。
- 页面加载速度慢:网站速度是SEO排名的重要指标之一,慢速的网站很难获得好的排名。
- 用户体验差:裂图和慢速的网站会导致用户跳出率高,这也是一个负面SEO信号。
-
版权风险
直接使用他人网站的图片和资源,可能涉及侵犯版权问题,虽然国内很多网站对此监管不严,但这始终是一个潜在的风险。
如何让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/)拥有可写权限(权限值通常为755或777),你可以通过FTP客户端或服务器的文件管理器来修改。 - PHP函数支持:确保你的PHP环境开启了
allow_url_fopen和curl扩展,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采集不本地化”的问题,请按照以下清单进行排查:
- 【首要检查】 采集规则修改页面 -> 远程是否保存本地 -> 选择“是”。
- 【系统检查】 系统基本参数 -> 附件设置 -> 远程图片是否保存本地 -> 选择“是”。
- 【权限检查】 确认
uploads目录及其子目录有可写权限。 - 【环境检查】 确认PHP开启了
allow_url_fopen和curl功能。 - 【目标网站检查】 尝试降低采集频率,或更换规则。
- 【手动测试】 可以手动复制一篇包含图片的文章链接,使用DedeCMS的“一键采集”功能,看是否能成功本地化图片,这有助于快速定位问题出在规则上还是系统环境上。
通过以上步骤,你应该能够解决绝大多数DedeCMS采集不本地化的问题,请务必记住,本地化是保证网站长期稳定、健康发展的基石。
