dede小说采集规则如何配置?

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

什么是 DedeCMS 小说采集?

DedeCMS 的小说采集功能,允许你通过设置一系列规则,从其他网站上自动抓取小说的章节内容,并将其格式化后,发布到你自己的 DedeCMS 网站上,这个过程就像是一个“机器人”帮你复制粘贴,但速度更快,且能自动处理章节名、内容、分页等。

核心流程:

  1. 分析目标网站:找到你要采集的小说列表页和章节内容页。
  2. 编写采集规则:在 DedeCMS 后台,创建一个采集任务,并填写规则。
  3. 执行采集:运行任务,DedeCMS 根据规则抓取数据并存入数据库。
  4. 自动生成:系统自动为你生成小说首页、章节列表页和章节内容页。

采集规则的构成要素

一个完整的小说采集规则通常由以下几个部分组成,缺一不可:

  1. 任务名称:给你的采集任务起个名字,方便管理。
  2. 目标网址
    • 列表页网址:存放所有章节链接的页面。https://www.example.com/book/123/
    • 内容页网址:存放单个章节正文内容的页面,列表页中的每一个链接都指向一个内容页。
  3. 列表页规则:用于从列表页中提取出所有章节的链接。
    • 章节链接采集:使用 list 标签,配合 XPath 选择器,定位到所有章节 <a> 标签的 href 属性。
  4. 内容页规则:用于从每一个章节的内容页中提取标题和正文。
    • 采集:使用 title 标签,配合 XPath 选择器,提取章节标题。
    • 采集:使用 text 标签,配合 XPath 选择器,提取章节正文。
  5. 发布栏目:采集到的小说内容需要发布到哪个 DedeCMS 的栏目下。
  6. 作者与来源
    • 作者:可以手动指定,也可以尝试从页面中抓取。
    • 来源:通常设置为采集任务本身的名称,或者抓取网站名。
  7. 分页规则:如果章节正文有多页,需要设置规则来抓取所有分页的内容并合并。
  8. 过滤与替换:用于清理抓取到的内容,比如删除广告、版权信息、修改图片链接等。

如何编写具体的采集规则(实战演练)

我们以一个假设的小说网站为例,一步步编写规则。

假设目标网站结构:

  • 列表页https://www.example.com/novel/abc/
  • 章节链接:在 <div class="chapter-list"> 下的 <a> 标签里。
  • 页的 <h1 class="chapter-title"> 标签里。
  • :在 <div class="chapter-content"> 标签里。

第一步:分析并编写“列表页规则”

  1. 打开列表页https://www.example.com/novel/abc/
  2. 使用浏览器开发者工具 (F12)
    • 切换到“元素” (Elements) 标签。
    • 按下 Ctrl+F 搜索 chapter-list,找到包含所有章节列表的 <div>
    • 观察其结构,你会发现里面有很多 <a> 标签,每个 <a> 就是一个章节链接。
  3. 确定 XPath
    • 定位到 <div class="chapter-list">
    • 然后定位到它内部所有的 <a>
    • 完整的 XPath 可能是://div[@class='chapter-list']//a
  4. 在 DedeCMS 后台填写规则
    • 进入“采集” -> “采集管理” -> “增加新采集任务”。
    • 任务名称示例小说采集
    • 目标网址https://www.example.com/novel/abc/
    • 列表页规则
      • 采集网址:留空,因为这是起始页。
      • 链接:选择 list
      • 填写我们找到的 XPath://div[@class='chapter-list']//a
      • 链接网址:选择 list
      • 填写 XPath 提取 href 的方式:@href
      • 网址过滤:可以留空,或者写上网站的域名,如 www.example.com,防止抓取到外部链接。

第二步:编写“内容页规则”

现在我们需要告诉 DedeCMS,抓取到的章节链接(如 https://www.example.com/novel/abc/chapter1.html和正文分别在哪。

  1. 打开一个章节页https://www.example.com/novel/abc/chapter1.html
  2. 使用浏览器开发者工具
    • 搜索 chapter-title <h1>
    • 搜索 chapter-content,找到正文 <div>
  3. 确定 XPath
    • 标题 XPath://h1[@class='chapter-title']
    • 正文 XPath://div[@class='chapter-content']
  4. 在 DedeCMS 后台填写规则
    • 内容页规则
        • 选择 title
        • XPath://h1[@class='chapter-title']
        • 选择 text
        • 填写正文 XPath://div[@class='chapter-content']
        • 过滤规则:这里非常重要!通常需要加上 /text() 来只提取文本内容,避免抓取到 HTML 标签本身,所以最终内容应为://div[@class='chapter-content']//text()

第三步:设置发布选项

  • 发布栏目:选择你事先在 DedeCMS 后台创建好的“小说”栏目。
  • 作者:可以手动输入“佚名”,或者尝试从页面抓取(如果页面有作者信息的话)。
  • 来源:可以输入“示例网站”。
  • 内容简介:可以手动编写,或者尝试从列表页抓取小说简介。

第四步:处理分页(重要!)

很多小说网站为了SEO,会将一个章节分成多页,内容页里有“下一页”按钮。

  1. 分析分页结构:在章节内容页的底部,找到“下一页”按钮的 <a>
  2. 编写分页规则
    • 页规则”中,找到 分页设置 区域。
    • 下一页链接:填写“下一页”按钮的 XPath。//a[text()='下一页']//div[@class='page-nav']//a[contains(text(), '下一页')]
    • 列表网址:选择 list
    • 填写提取 href 的方式:@href
    • 内容网址:选择 text
    • 填写提取正文的 XPath,和之前一样://div[@class='chapter-content']//text()
    • 过滤规则:同样加上 /text()

注意:你需要为“下一页”和“最后一页”都设置好规则,确保能抓取到所有分页内容。

第五步:过滤与替换

质量的关键,在“内容页规则”的 过滤与替换 标签页中,你可以进行设置。

  • 过滤广告:如果正文里夹杂着广告 <div>,你可以用 XPath 找到它并过滤掉。
    • 过滤 XPath://div[@class='ad-banner']
  • 替换文本
    • 替换www.example.com替换为你的域名.com (修改图片或外部链接的域名)。
    • 替换(本章完)替换为:空 (删除一些固定的结束语)。
  • 过滤JS/CSS:通常勾选“过滤JS代码”和“过滤CSS代码”。

常见问题与注意事项

  1. 网站反爬虫:目标网站可能会设置防采集机制,如 IP 封禁、验证码等。
    • 解决方案:使用代理 IP、降低采集速度(在任务设置中调整)、分散采集时间。
  2. 网站结构变动:目标网站一旦改版,XPath 就会失效,导致采集失败。
    • 解决方案:需要定期检查并更新你的采集规则。
  3. 编码问题:目标网站可能是 GBK 编码,而你的网站是 UTF-8
    • 解决方案:在任务设置中,确保选择正确的网页编码。
  4. 内容重复:采集过来的内容可能和你网站已有的内容重复,被搜索引擎判定为垃圾内容。
    • 解决方案:采集后,务必对内容进行二次加工,比如手动修改开头、或者使用伪原创工具。
  5. 版权问题这是最重要的一点! 未经授权采集他人享有版权的小说内容是违法的。
    • 解决方案:仅用于个人学习测试,或者采集已明确允许转载或已进入公共版权领域的内容,商业网站请务必获得授权。
  6. 规则调试:写完规则后,不要直接“开始采集”,一定要先使用“测试”功能,它会抓取第一章的内容让你预览,确认无误后再进行批量采集。

规则示例(模板)

你可以根据这个模板,修改其中的 XPath 来适应不同的网站。

任务名称:XX小说网-都市小说 目标网址https://www.xx.com/book/123456/

列表页规则

  • 采集网址:(留空)
  • 链接list
  • //div[@id='list']//dd//a
  • 链接网址list
  • @href
  • 网址过滤www.xx.com 页规则**:
    • 标签:title
    • 内容://div[@class='bookname']//h1
    • 标签:text
    • 内容://div[@id='content']//text()
    • 过滤规则
      • 过滤://script (过滤JS)
      • 过滤://div[@class='ad'] (过滤广告)
      • 替换:src="https://www.xx.com/images/ 替换为 src="https://你的域名.com/images/

分页设置

  • 下一页链接//a[text()='下一页']
  • 列表网址list
  • @href
  • 内容网址text
  • //div[@id='content']//text()

希望这份详细的指南能帮助你成功设置 DedeCMS 的小说采集规则!

-- 展开阅读全文 --
头像
C语言函数如何实现编程?
« 上一篇 今天
dede会员系统功能有哪些核心模块?
下一篇 » 今天

相关文章

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