采集缩略图的核心原理
织梦采集缩略图的工作流程如下:

(图片来源网络,侵删)
- 配置采集规则:在设置采集规则时,你需要告诉织梦去哪里找页。
- 定义缩略图匹配规则:在文章内容页的HTML代码中,织梦需要通过一个“正则表达式”来找到那张缩略图的URL地址。
- 采集与下载:当执行采集任务时,织梦会:
- 访问你配置的文章内容页。
- 运行你设置的正则表达式,提取出缩略图的URL。
- 将这个URL指向的图片文件下载到你网站服务器上。
- 将图片在服务器上的本地路径保存到数据库中,以便前台调用。
关键点:采集的核心是正则表达式,它能准确地在网页源代码中“揪”出你想要的图片地址。
详细步骤:如何配置采集缩略图
假设我们要采集一个网站的文章,并获取其文章列表页和内容页。
第1步:找到目标图片的HTML代码
在开始配置前,先用浏览器打开一个页,
- 用鼠标右键点击文章的缩略图。
- 选择“检查”或“审查元素”,会打开开发者工具。
- 在HTML代码中,找到包裹这张
<img>标签的<a>标签或<div>标签。重点复制这部分代码,它包含了图片的URL。
示例: 假设网页上的缩略图HTML代码是这样的:

(图片来源网络,侵删)
<div class="article-thumb">
<a href="/article/123.html" target="_blank">
<img src="https://www.example.com/uploads/2025/10/thumb_123.jpg" alt="文章标题">
</a>
</div>
我们需要的图片URL是 https://www.example.com/uploads/2025/10/thumb_123.jpg。
第2步:创建或修改采集节点
- 登录织梦后台,进入 [采集] -> [采集管理]。
- 找到你要采集的节点,点击后面的 [修改] 或 [增加新节点]。
- 进入节点配置页面,切换到 [高级选项] 或 解析选项] 标签页(不同版本名称可能略有差异)。
第3步:配置“文章内容”和“缩略图”
这是最关键的一步。
配置文章内容
- 内容链接:填写文章列表页的URL,可以使用
{page}作为分页符,https://www.example.com/list_{page}.html。 - 内容链接:填写文章内容页的URL,同样可以使用列表页的字段,
https://www.example.com/{arcurl}.html。 - 内容选择:选择“列表”。
- 列表起始和列表结束:用开发者工具找到列表项的开始和结束标签。
- 列表开始:
<div class="article-item"> - 列表结束:
</div>
- 列表开始:
- 在列表项中,用正则表达式匹配标题,如果标题在
<h2><a>标签里,可以写:<h2><a[^>]*>([^<]*)</a></h2>。([^<]*)就是匹配到的标题内容。 - 内容链接:在列表项中,匹配内容页的URL。
<a href="([^"]*).html"。
配置缩略图(重点)

(图片来源网络,侵删)
在“高级选项”或“内容解析选项”中,找到“缩略图”这一项。
- 缩略图:不要直接填写图片的URL!这里应该填写一个正则表达式,用来从文章内容页的源代码中提取出图片的URL。
回到我们第一步复制的HTML代码:
<div class="article-thumb">
<a href="/article/123.html" target="_blank">
<img src="https://www.example.com/uploads/2025/10/thumb_123.jpg" alt="文章标题">
</a>
</div>
我们需要匹配的是 src="..." 里面的内容,可以写成以下几种正则表达式:
-
精确匹配(推荐):
<img[^>]*src="([^"]*thumb[^"]*)"[^>]*>- 解释:
<img开头,[^>]*匹配任意非>的字符(即img标签的属性),src="匹配src=",([^"]*thumb[^"]*)是核心,它会匹配src="和下一个 之间的所有内容,并且这个内容里必须包含thumb字符(避免匹配到文章内容里的其他图片)。[^>]*>匹配img标签的结束。
-
通用匹配(如果图片路径没有规律):
<img[^>]*src="([^"]+\.(jpg|png|gif|webp))"[^>]*>- 解释:这个表达式会匹配所有
<img>标签里的src属性,只要它是图片格式,如果一篇文章里有多个图片,它可能会匹配到错误的图片。不推荐,除非缩略图确实是第一张图。
-
匹配特定父级下的图片(更精确):
<div[^>]*class="article-thumb"[^>]*>[\s\S]*?<img[^>]*src="([^"]*)"[^>]*>- 解释:这个表达式更严谨,它会先找到
class="article-thumb"的div,然后在这个div内部去寻找img标签的src,这能最大程度避免误匹配。
选择最适合你目标网站结构的正则表达式填入“缩略图”输入框。
第4步:保存并测试
- 保存节点配置。
- 回到采集管理页面,点击该节点后面的 [选择] 按钮。
- 在弹出的页面中,点击 [测试] 按钮。
- 在测试结果页面,你会看到采集到的文章标题和缩略图的本地路径,如果这里显示了一个正确的路径,
/uploads/thumb/thumb_123.jpg,说明你的缩略图规则配置成功了! - 如果路径为空或显示错误,返回第3步,检查你的正则表达式是否正确。
常见问题与解决方案
问题1:采集时提示“缩略图不存在”或路径为空。
- 原因1:正则表达式写错了。
- 解决方案:重新打开目标网页,检查HTML代码,确保你的正则表达式能准确匹配到图片URL,可以使用在线正则表达式测试工具进行调试。
- 原因2:目标网站使用了JavaScript动态加载图片,
<img>标签的src可能是空的,或者是一个加载占位图,真实的图片URL在data-src或其他属性里。- 解决方案:在开发者工具中,观察真实的图片URL在哪个属性里(如
data-src,data-original),然后修改你的正则表达式去匹配那个属性。<img[^>]*data-src="([^"]*)"[^>]*>。
- 解决方案:在开发者工具中,观察真实的图片URL在哪个属性里(如
问题2:缩略图下载到了错误的位置。
- 原因:织梦后台的 [系统] -> [核心设置] -> (附件目录) 配置不正确。
- 解决方案:确保“附件目录”的路径是你网站存放上传文件的目录,通常是
/uploads/或/dede/uploads/,采集的图片会默认存放在这个目录下的special文件夹里(/uploads/special/)。
- 解决方案:确保“附件目录”的路径是你网站存放上传文件的目录,通常是
问题3:采集成功,但前台文章页不显示缩略图。
- 原因1:文章模板中没有调用缩略图标签。
- 解决方案:打开文章内容页的模板文件(通常是
article_article.htm),确保模板中有[field:picname/]或[field:litpic/]标签,并且它被正确的<img>标签包裹。{dede:field name='picname' runphp='yes'} if(@me != ''){ @me = '<img src="'.$GLOBALS['cfg_cmspath'].$me.'" alt="{dede:field.title/}" />'; } else{ @me = '<img src="/static/images/default.jpg" alt="{dede:field.title/}" />'; } {/dede:field}
- 解决方案:打开文章内容页的模板文件(通常是
- 原因2:缩略图路径是绝对路径(
http://...),但网站配置的是相对路径。- 解决方案:在 [系统] -> [核心设置] 中,检查“是否使用绝对网址”选项,如果关闭,织梦会使用相对路径,如果开启,确保你的图片URL是完整的,通常建议关闭此项,使用相对路径更灵活。
问题4:采集到的图片无法在后台显示,但路径存在。
- 原因:目录权限问题,织梦没有写入
uploads/special目录的权限。- 解决方案:通过FTP或服务器管理工具,将
uploads目录及其子目录(如special)的权限设置为755或777(777有安全风险,测试成功后改回755)。
- 解决方案:通过FTP或服务器管理工具,将
高级技巧与注意事项
- 使用“远程图片本地化”:织梦采集后,文章内容里的图片URL默认还是远程的,为了防止对方网站失效导致你的图片消失,可以在采集后,手动或通过插件执行“远程图片本地化”功能,将文章内容里的所有图片也下载到你的服务器上。
- 善用“自定义采集”:如果网站结构复杂,常规采集不成功,可以尝试使用“自定义采集”,可以更精细地控制每个字段的提取。
- 尊重版权:采集他人内容时,请务必遵守相关法律法规和网站的使用条款,避免侵权行为。
- 反爬虫机制:很多网站有反爬虫措施,频繁采集可能会导致你的IP被屏蔽,采集时可以适当设置“延时采集”,或在采集前使用代理IP。
通过以上步骤和技巧,你应该可以顺利地在织梦CMS中实现采集缩略图的功能,如果遇到具体问题,可以提供目标网站的缩略图HTML代码,我可以帮你写出更精确的正则表达式。
