dede采集图片教程,如何实现自动抓取?

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

DedeCMS 图片采集完整教程

DedeCMS 的采集功能非常强大,但规则设置相对复杂,本教程将以图文并茂的方式,为你拆解每一步,让你轻松上手。

dede采集图片教程
(图片来源网络,侵删)

第一步:准备工作(至关重要)

在开始采集之前,请务必做好以下准备工作,这能避免你后续遇到大量麻烦。

  1. 确保服务器环境支持

    • PHP 环境:需要开启 allow_url_fopencurl 扩展,绝大多数虚拟主机或服务器都默认开启,但需要确认。
    • 目录权限:确保 data 目录和 uploads 目录(或你设置的所有附件目录)具有 777755 的可写权限,这是采集的图片和附件能够成功保存的基础。
  2. 创建目标栏目

    采集到的文章需要发布到网站的某个栏目下,请提前在后台“栏目管理”中创建好一个或多个目标栏目,创建一个名为“图集欣赏”的栏目,并选择好“栏目列表选项”(如是否生成列表页等)。

    dede采集图片教程
    (图片来源网络,侵删)
  3. 分析目标网站

    • 找到列表页:确定你要采集的网站列表页 URL,一个图片列表页的网址可能是 https://example.com/gallery/page/1
    • 找到文章页:从列表页点击任意一篇文章,进入其详情页,分析其 URL 结构。https://example.com/gallery/123.html
    • 找到图片地址:在文章详情页,使用浏览器开发者工具(按 F12)查看图片的 <img> 标签,找到图片的真实地址(URL),注意区分是相对路径还是绝对路径。

第二步:创建并配置采集节点

这是采集的核心步骤。

  1. 进入采集管理

    • 登录 DedeCMS 后台,点击顶部菜单的 “采集” -> “一键采集”
  2. 添加新节点

    dede采集图片教程
    (图片来源网络,侵删)
    • 在“一键采集”页面,点击右上角的 “增加采集节点” 按钮。
    • 填写节点基本信息
      • 节点名称:给你的采集任务起个名字,方便识别,如“花瓣网图集”。
      • 起始URL:粘贴你准备好的列表页地址。
      • 列表命名规则:这是采集到的文章在后台显示的标题,可以使用 {listtitle}(列表页标题)或 {title}(文章页标题),通常使用 {title} 更准确。
      • 目标目录:选择你提前创建好的目标栏目
      • 作者:可以写死一个作者名(如“佚名”),也可以使用 {author} 标签从目标网站抓取。
      • 来源:可以写死网站名称(如“花瓣网”),也可以使用 {source}
      • 发布时间:通常使用 {pubdate}{senddate} 从目标网站抓取,或者选择“发布时使用”当前时间。
      • Tag标签:可以留空,或者使用 {tag} 标签抓取。
    • 填写完毕后,点击 “开始采集”
  3. 测试并获取文章链接

    • DedeCMS 会自动分析你填写的列表页,并尝试从中提取文章链接。
    • 在下方的“文章列表”区域,你会看到解析出的文章标题和链接。
    • 手动验证:点击“获取”按钮,系统会抓取几篇文章进行测试,检查抓取到的文章链接是否正确。
    • 点击“保存”:如果链接解析正确,点击页面底部的 “保存” 按钮,节点创建成功,但采集规则还未配置完整。

第三步:配置高级采集规则(关键步骤)

这是决定采集成败和质量的最重要的一步,你需要点击刚刚创建的节点,进入详细配置页面。

  1. 进入节点详情

    • 返回“一键采集”主界面,你刚刚创建的节点会出现在列表中,点击该节点右侧的 “修改”“选择” 按钮,进入高级规则设置页面。
  2. 设置列表规则

    • 在“列表规则”标签页,系统已经自动填充了部分内容,你需要手动调整和确认。
    • 文章列表起始链接:确认是你的列表页 URL。
    • 文章链接:这是最关键的规则之一,它告诉 DedeCMS 如何从列表页中找到文章的 URL。
      • 选择匹配:通常选择“使用正则表达式”。
      • 填写正则:在列表页源码中,找到文章链接的共同规律,所有文章链接都包含 /article/ 且以 .html
      • 示例正则<a href="([^"]*\.html)"[^>]*>([^<]*)</a>,这个正则表示:查找所有 <a> 标签,并捕获其 href 属性值(以 .html 和标签内的文本(即文章标题)。
      • 点击“测试”:输入一个列表页 URL,点击“测试”,看下方是否能成功提取出文章链接,如果提取出的是一堆代码,说明正则表达式有误,需要反复调试。
  3. 规则

    • 切换到“内容规则”标签页,这里是配置如何从文章详情页抓取正文内容。
    • 目标网址:系统会自动使用上一步获取的文章链接。
      • 匹配方式:选择“使用正则表达式”。
      • 填写正则:在目标文章页源码中,找到 <title> 标签,如果标题是 <title>这是一个美丽的图片 - 网站名称</title>,正则可以写成:<title>([^<]*?) - 网站名称</title>([^<]*?) 是一个非贪婪匹配,会捕获“这是一个美丽的图片”。
      • 匹配方式:选择“使用选择器”或“使用正则表达式”。强烈推荐使用选择器,因为它更稳定。
      • 如何获取选择器
        1. 在浏览器中打开目标文章页。
        2. 右键点击正文区域的任意一张图片,选择“检查”。
        3. 在开发者工具中,找到包含所有图片的那个 <div><article>
        4. 右键点击该标签,选择 Copy -> Copy selector
        5. 将复制的选择器粘贴到 DedeCMS 的“内容选择器”输入框中,可能是 .post-contentdiv.article-body
        • 只采集包含指定关键字的列表:可以留空。
        • :勾选此项,可以排除掉不需要抓取的部分,如页脚、广告、评论区等,你可以填写多个选择器,用英文逗号隔开。.footer, .ads, .comment
        • :可以写一些要过滤掉的 HTML 标签或文字,如 <script>, <iframe>, “广告”等。
  4. 设置图片规则(本教程核心)

    • 切换到“图片规则”标签页,配置如何处理正文中的图片。
    • 是否采集图片务必勾选此项!
    • 图片本地化务必勾选此项! 这是将远程图片保存到你自己服务器的关键。
    • 图片保存目录:设置图片保存的相对路径。uploads/images/,DedeCMS 会自动在 uploads 目录下创建子目录。
    • 图片标签:告诉 DedeCMS 正文中的 <img> 标签在哪里。强烈建议使用“选择器”,填写你在“内容规则”中找到的那个正文区域的选择器(.post-content),这样 DedeCMS 就只会在正文区域内查找图片,而不会去采集页头、页脚的图片。
    • 图片替换规则
      • 替换远程图片地址:勾选此项,DedeCMS 会将 <img> 标签里的 src 属性值替换为你本地服务器上的图片地址。
      • 缩略图处理:勾选此项,可以设置生成缩略图,你可以设置缩略图的宽度和高度(200x150),系统会自动裁剪并生成缩略图。
    • 图片命名规则:设置本地图片的文件名,可以使用 {随机字符串}{时间戳} 等,避免重名。{rand:6} 表示生成6位随机字符。

第四步:执行采集与后续处理

所有规则配置完毕后,就可以开始正式采集了。

  1. 保存所有规则

    • 在高级规则设置页面,检查所有配置无误后,点击底部的 “保存” 按钮。
  2. 开始采集

    • 返回“一键采集”主界面,点击你配置好的节点右侧的 “开始采集” 按钮。
    • 系统会开始逐页抓取列表,然后进入每个文章页抓取内容和图片,这个过程可能需要一些时间,请耐心等待。
    • 你可以在“任务日志”中查看采集进度和是否有错误。
  3. 检查采集结果

    • 采集完成后,进入后台的 管理” -> “文档列表”
    • 在你设定的目标栏目下,查看是否成功发布了文章。
    • 点击文章标题进入编辑,检查:
      • 是否正确。
      • :格式是否错乱,文字是否完整。
      • 图片:是否已经成功上传到你的服务器,<img> 标签的 src 是否指向本地地址(而不是远程地址)。右键图片 -> 新标签页打开,如果能打开你服务器上的图片,就说明成功了。

常见问题与解决方法

  • Q1: 采集失败,提示“权限不足”或“无法写入文件”?

    • A1: 检查 datauploads 目录的权限是否为 777,这是最常见的原因。
  • Q2: 图片无法采集,或者采集后显示为空白/叉号?

    • A2:
      1. 检查“图片规则”中的“图片标签(选择器)”是否正确,是否指向了正文区域。
      2. 检查目标网站的图片是否使用了防盗链,如果使用了,你需要开启 DedeCMS 的“远程图片本地化”功能,并且确保你的服务器支持 curl
      3. 检查“图片保存目录”是否存在且可写。
  • Q3: 正则表达式总是匹配不到内容?

    • A3: 正则表达式是难点,多使用浏览器开发者工具查看源码,观察规律,可以尝试使用更简单的正则,或者分步测试,也可以在网上搜索一些常见的正则表达式模板进行修改。
  • Q4: 采集到的文章内容格式很乱?

    • A4: 在“内容规则”中,勾选“”,将不需要的标签(如 <script>, <style>)和干扰文字(如“广告”、“相关推荐”)添加进去。
  • Q5: 如何批量采集多个列表页?

    • A5: 在“列表规则”中,你可以设置“列表分页”,如果列表页的 URL 是 page/1, page/2, page/3... 你可以设置分页规则为 page/{page},并设置起始页和结束页,DedeCMS 会自动遍历所有页面进行采集。

DedeCMS 图片采集是一个“分析-配置-测试-执行”的循环过程,耐心是关键,多花时间在分析目标网站和调试规则上,尤其是正则表达式CSS选择器,一旦配置成功,后续的采集工作就会非常顺利,希望这份教程能帮助你成功采集到想要的图片内容!

-- 展开阅读全文 --
头像
织梦文件夹权限如何正确设置?
« 上一篇 04-18
dede后台无法升级怎么办?
下一篇 » 04-18

相关文章

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