到很多网友都为织梦(DEDECMS)的采集教程头疼,的确,官方出的教程太笼统了,什么都没说,换个网站你什么都做不了,这个教程是最详尽的教程,让你一看即会!

一、列表采集

第一步、我们打开织梦后台点击采集——采集节点管理——增加新节点

第二步、这里我们以采集普通文章为例,我们选择普通文章,然后确定
第三步、进入了采集的设置页面,填写节点名称。
第四步、打开你想要采集的文章列表页。
这里以这个网站为例,http://www.nanmafan.com/xunyicao/打开这个页面,
右键——查看源文件找到目标页面编码,就在charset后面)
 
第五步、填写页面的基本信息,填完后如图
第六步、填写列表网址获取规则看看文章列表第一页的地址。
http://www.nanmafan.com/xunyicao/list_49_1.html
对比第二页的地址http://www.nanmafan.com/xunyicao/list_49_2.html
我们发现了他们除了49_后面的数字不一样,其他的都一样,所以我们可以这样写
http://www.nanmafan.com/xunyicao/list_49_(*).html
就是把1换成了(*)因为这里只有2页,所以我们就填从1到2每页递增当然是1了,2-1...是等于1吧
这里我们就填写完了
 
可能大家采集的有些列表没有规则,那就只有手工指定列表网址了,如图
每行写一个页面地址

第七步、填写文章网址匹配规则了,回到文章列表页

右键查看源文件找到区域开始的HTML,就是找文章列表开始的标志。

我们很容易的找到了如图中的“新闻列表”。从这里开始,后面就是文章列表里,再找文章列表结束的HTML

就是这个了,一个很容易找到的标志
如果链接中含有图片:
不处理采集为缩略图这里根据自己的需要选择

 

二、内容页采集

第八步、对区域网址进行再次筛选:

(使用正则表达式)必须包含:(优先级高于后者)

不能包含:打开源文件,我们可以很清楚的看到,文章链接都是以.html结束的所以,我们在必须包含后面填.html如果遇到有些列表很麻烦,还可以填写后面的不能包含

点击保存设置进入下一步,可以看到我们获得的文章网址
看到这些就是对的了,我们保存信息进入下一步设置内容字段获取规则
我们看看文章有没有分页,随便进入一篇文章看看。。我们看到这里的文章没有分页
所以这里的我们就默认了

我们现在来找文章标题等等随便进入一篇文章,右键查看源文件
看看这些

依照源码填写

第九步、填写文章内容的开始,结束和上面的一样,找到开始和结束标志.

开始部分如图

结束部分如图

最后填写如图

 

第十步、你想过滤文章中的什么内容就到过滤规则里写吧,比如要过滤文章中的图片,

选择常用规则,如图

再勾选IMG,如图

然后确定

这样我们就把正文中的图片过滤了

第十一步、设置完毕后点保存设置并预览,如图

这样一个采集规则就写好了,很简单吧有些网站很难写,可要多下点功夫了哦
我们点保存并开始采集——开始采集网页一会的功夫就采集完了

看看我们采集到的文章

最后、导出数据

首先选择要导入到的栏目,按“请选择”那里即可在弹出的窗口中选择你需要导入的栏目发布选项这里一般默认即可,除非你不想马上发布。每批导入默认是30条,这里修改与否都无所谓,附带选项一般选“排除重复标题”,至于自动生成HTML那个选项建议先别生成,因为我们还要去批量提取摘要和关键字。

文章标题
匹配规则:<title>[内容]</title>
过滤规则:{dede:trimreplace=""}_XXX网站{/dede:trim}

 

来自百度http://jingyan.baidu.com/article/642c9d34ab179b644a46f782.html

三、采集规则补充

(一)文字过滤与替换的方法

1.去除超链接,这种最常用。

{dede:trim replace=”}<a([^>]*)>{/dede:trim}
{dede:trim replace=”}</a>{/dede:trim}
如果填成这样,那就把链接的文本也一起去掉了

{dede:trim replace=”}<a([^>]*)>(.*)</a>{/dede:trim}

2.过滤JS调用广告,比如GG的广告,就加个这样的:

{dede:trim replace=”}<script([^>]*)>(.*)</script>{/dede:trim}

3.过滤div标签。

这个很重要,如果没过滤干净则可能使发布出来的文章版面错位, 目前大多数遇到采集后错位的原因在此。

{dede:trim replace=”}<div([^.]*)>{/dede:trim}
{dede:trim replace=”}</div>{/dede:trim}

有的时候也需要这样子过滤:

{dede:trim replace=”}<div 选择器>(.*)</div>{/dede:trim}

4.其它的过滤规则可以照以上规律进行推出。
5.过滤摘要和关键字使用,经常要用到。

{dede:trim replace=”}{/dede:trim}

6.简单替换。
{dede:trim replace=’替换后的词语’}要替换的词语{/dede:trim}
7.去掉src

{dede:trim replace=""}src="([^"]*)"{/dede:trim}

(二)内容页指定作者、来源

指定value值即可实现:

{dede:item field='writer' value='小军' isunit='' isdown=''}
{dede:match}{/dede:match}

{dede:function}{/dede:function}
{/dede:item}

{dede:item field='source' value='军事网' isunit='' isdown=''}
{dede:match}{/dede:match}

{dede:function}{/dede:function}
{/dede:item}

(三)内容页分页采集

在“内容分页导航所在的区域匹配规则:”,填写规则,如 <ul class="pages>[内容]</ul>,然后选择“全部列出的分页列表”。

遭遇情景:如果选择“上下页形式或不完整的分页列表”,列表页的所有文章内容全部一起写入

DEDECMS之九 文章采集的更多相关文章

  1. 织梦DedeCMS未审核文章更新为当前时间

    对于个人站长来说,每天文章的更新量都是个巨大的问题,例如,立信CPA培训注册会计师考试网站,有时候我们去别的网站采集大量的文章,然后自己进行手工整理伪原创,但是审核的时候,时间却是采集发布的时间.一方 ...

  2. 三种dedecms调用相关文章的方法

    在文章的末尾或侧边栏添加相关文章可以提高用户的黏度,提高pv,增加se的好印象(哈哈),那么dedecms如何调用相关文章呢?有三种方法可以实现. 第一种dedecms调用相关文章的方法,用默认的li ...

  3. dedecms 5.7文章编辑器附件上传图标不显示

    我最近发现在使用dedecms 5.7文章编辑器附件上传图标不显示了,以前是没有问题的,这个更新系统就出来问题了,下面我来给大家分享此问题解决办法.   问题bug:在dedecms 5.7中发现了一 ...

  4. dedecms实现编辑文章时不自动修改发布时间

    dedecms默认编辑文章时自动修改文章的发布时间,如何让它不自动修改发布时间呢? 找到后台编辑文章的模板文件稍作调整即可. 文件/dede/templets/artical_edit.htm 把 $ ...

  5. dedecms批量修改文章为待审核稿件怎么操作

    dedecms批量修改文章为待审核稿件要怎么操作呢?因为我们有时会出于某些原因要把文章暂时先隐藏掉,dedecms有一个比较好的功能是将文件状态设为未审核前台就可以看不到了,那要怎么批量设置呢?到后台 ...

  6. dedecms清空所有文章怎么操作?sql语句如何写?

    小C新建了一个站,确切的说是复制,出于seo考虑,决定清空所有文章,那么dedecms清空所有文章怎么操作?sql语句如何写呢?特别提醒:修改之前一定要先做好备份,以防万一!下面的语句在迫不得已的情况 ...

  7. Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法

    Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问 ...

  8. 在织梦dedecms中实现“文章标题-栏目名称-网站名”导航

    本文介绍了在dedecms中,实现文章标题-栏目名称-网站名 导航的方法,有需要的朋友参考下. 在dedecms中实现“文章标题-栏目名称-网站名”导航的方法.   第一种: 在/include/in ...

  9. 如何用SQL命令行工具删除dedecms指定id文章

    用dedecms采集时标题字段设置错了,出现了注释符号<!---->,导致后台的文章列表出现错误,也无法直接从列表中删除,可以远程登录数据库去操作,这个相对比较麻烦,想着直接从后台的SQL ...

随机推荐

  1. 【代码笔记】iOS-按钮带下划线的写法

    一,效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidLo ...

  2. 我的android学习经历7

    android签名后报错的问题 Duplicate id @+id/imageView, already defined earlier in this layout,android生成报错 这个是项 ...

  3. WPF学习之路(十一)布局(续)

    布局实际上是一个Slot模型,其中每个父对象分配给子对象一个Slot,子对象可以自由占用Slot中的空间,通过Margin\VerticalAlignment\HorizontalAlignment控 ...

  4. VS2013崩溃,无法打开项目的解决方案

    最近遇到VS2013,在打开解决方案时,报如下错误: “未找到与约束 ContractName Microsoft.Internal.VisualStudio.PlatformUI.ISolution ...

  5. Lazy<T>在Entity Framework中的性能优化实践(附源码)

    在使用EF的过程中,导航属性的lazy load机制,能够减少对数据库的不必要的访问.只有当你使用到导航属性的时候,才会访问数据库.但是这个只是对于单个实体而言,而不适用于显示列表数据的情况. 这篇文 ...

  6. Oracle行内链接不会引起USER_TABLES中CHAIN_CNT值变化

    前几天和群里网友讨论一个关于行内链接(intra-block chaining)的问题,问题非常有意思,恰好今天有空,顺便整理了一下这些知识点. 问题描述:下面SQL,创建一个超过255列的表(实际为 ...

  7. 查看ORACLE的实际执行计划

    ORACLE的执行计划分为预估执行计划和实际执行计划.其中,你用Toad.PL/SQL Developer.SQL Developer.EXPLAIN PLAN FOR或者SET ATUOTRACE ...

  8. js 百度地图

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. linux的“自动化”

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  10. 关于/etc/rc.local以及/etc/init.d

    1. /etc/rc.local    这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里   --------引用----------------------  在完成 run le ...