欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

DedeCMS采集规则-过滤替换技巧

shiping1 的头像

dedecms采集过滤规则 及替换规则

采集过滤规则 及替换规则

{dede:trim replace=''}<a([^>]*)>(.*)</a>{/dede:trim}
{dede:trim replace=''}<script([^>]*)>(.*)</script>{/dede:trim}
{dede:trim replace=''}<!--(.*)-->{/dede:trim}
{dede:trim replace=''}<table([^>]*)>(.*)</table>{/dede:trim}
{dede:trim replace=''}<style([^>]*)>(.*)</style>{/dede:trim}
{dede:trim replace=''}<img([^>]*)>{/dede:trim}
{dede:trim replace=''}<object([^>]*)>(.*)</object>{/dede:trim}
{dede:trim replace=''}<embed([^>]*)>(.*)</embed>{/dede:trim}
{dede:trim replace=''}<iframe([^>]*)>(.*)</iframe>{/dede:trim}
{dede:trim replace=''}<param([^>]*)>(.*)</param>{/dede:trim}
{dede:trim replace=''}<div([^.]*)>{/dede:trim}
{dede:trim replace=''}</div>{/dede:trim}

如果文章中的字段 想替换的话
 

{dede:trim replace='替换内容'}原内容{/dede:trim}

来自 
http://www.cnblogs.com/ximu/articles/1937370.html 

DedeCMS采集规则-过滤替换技巧 
1.采集去除链接

  [Copy to clipboard]CODE:
  {dede:trim}]*)>([^<]*){/dede:trim}
  --------------------------------------------------------
  让field:title 标题突破30这个长度,修改代码的方法
  找到./include/inc_arcpart_view.php
  行291 :
  if($titlelen=="") $titlelen = 30;
  修改为
  if($titlelen=="") $titlelen = 60;
  就可以了,然后,你可以这样调用了
  {dede:channelArtlist typeid='0' col=1 tablewidth='100%'}
  {dede:arclist row="10"}
  [field:title function="cn_substr('@me',38)" /]
  {/dede:arclist}
  {/dede:channelArtlist}
  把这个延伸一下:关于inc_arcpart_view.php
  function GetArcList($typeid=0,$row=10,$col=1,$titlelen=30,$infolen=160,$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$keyword="",$innertext="",$tablewidth="100",$arcid=0,$idlist="")
  这里的参数都可以更改你实际需要的模板元素尺寸大小.


  2. 采集过虑中去掉链接保留文字的方法!
  柏老大的方法是{dede:trim}<a ([^>]*)>([^<]*)</a>{/dede:trim}
  这样做会去掉<a hf.......>与</a>之间的字符!这样整个文章就少了部分字符,不完整了!
  后来我多次测试,总算找到了正确的使用方法!如下:
  {dede:trim}<a([^>]*)>{/dede:trim}
  {dede:trim}</a>{/dede:trim}
  做成两条采集规则就可以了!
  
  在实际使用中好像([^<]*)([^>]*)两条一起使用才行!
  
  3. 过滤div
  {dede:trim}]*)>{/dede:trim}
  {dede:trim}
  {/dede:trim}


  过滤js
  {dede:trim}]*)>([^<]*){/dede:trim}
 
  过滤未知变量字符
  固定(.*)固定
  
  4.dede万能过滤代码
  
  以下是常用的正则表达式标签
  {dede:trim}<tbody(.*)>{/dede:trim}
  {dede:trim}</tbody>{/dede:trim}
  {dede:trim}<table(.*)>{/dede:trim}
  {dede:trim}</table>{/dede:trim}
  {dede:trim}<tr(.*)>{/dede:trim}
  {dede:trim}</tr>{/dede:trim}
  {dede:trim}<td(.*)>{/dede:trim}
  {dede:trim}</td>{/dede:trim}
  {dede:trim}<font(.*)>{/dede:trim}
  {dede:trim}</font>{/dede:trim}
  {dede:trim}<a(.*)>{/dede:trim}
  {dede:trim}</a>{/dede:trim}
  {dede:trim}<param(.*)>{/dede:trim}
  {dede:trim}<embed(.*)</embed>{/dede:trim}
  {dede:trim}<object(.*)</object>{/dede:trim}
  {dede:trim}<iframe(.*)</iframe>{/dede:trim}
  {dede:trim}<form(.*)</form>{/dede:trim}
  {dede:trim}<input(.*)>{/dede:trim}
  {dede:trim}<script(.*)</script>{/dede:trim}
  {dede:trim}<style(.*)</style>{/dede:trim}
  {dede:trim}<!--(.*)-->{/dede:trim}


  以下为不常用的正则表达式标签
  {dede:trim}<div(.*)>{/dede:trim}
  {dede:trim}</div>{/dede:trim}
  {dede:trim}<center(.*)>{/dede:trim}
  {dede:trim}</center>{/dede:trim}
  {dede:trim}<p(.*)>{/dede:trim}
  {dede:trim}</p>{/dede:trim}
  {dede:trim}<span(.*)>{dede:trim}
  {dede:trim}</span>{dede:trim}
  {dede:trim}<img(.*)>{/dede:trim}
  
///////////////////////////////////////////////
  
5.织梦标题不全,鼠标指向显示全部的代码:
{dede:arclist titlelen=’100′}

[field:title function=' ( strlen("@me")>40 ? cn_substr("@me",40): "@me" ) '/]
{/dede:arclist}

6.dede/inc/inc_archives_functions.php第100行(flash频道远程flash本地化的BUG)
$cfg_uploaddir = $GLOBALS['media_dir'];
修改成
$cfg_uploaddir = $GLOBALS['cfg_other_medias'];

6.发布时间,来源,作者可以通过@me函数实现,如:在自定义处理接口:处输入   @me = “Azure·【博】” 就表示来源为“Azure·【博】”
7.内容的替换:在所采集的文章内容中有多媒体,使用的是相对路径,采集的时候又不想下载,最好的办法就是将地址替换成媒体的实际地址。可以这样实现,在文章内容规则部分的自定义处理接口:处输入@me=str_replace(‘src=”str1′,’src=”str2′,@me);
这样采集出来的文章中的所有的str1就被替换成str2!

比如:采集替换函数
@me=str_replace(‘舒格尔’,'www.shugeer.com’,@me);

再补充一点   过滤规则

{dede:trim replace=”"}<a([^>]*)>(.*)</a>{/dede:trim}
{dede:trim replace=”"}<script([^>]*)>(.*)</script>{/dede:trim}
{dede:trim replace=”"}<!–(.*)–>{/dede:trim}
{dede:trim replace=”"}<table([^>]*)>(.*)</table>{/dede:trim}
{dede:trim replace=”"}<object([^>]*)>(.*)</object>{/dede:trim}
{dede:trim replace=”"}<iframe([^>]*)>(.*)</iframe>{/dede:trim}
{dede:trim replace=”"}<strong>经典论坛交流</strong>:<br>{/dede:trim}
{dede:trim replace=”"}◎进入论坛、版块参加讨论,我还想。{/dede:trim}
{dede:trim replace=”"}责任编辑:{/dede:trim}
{dede:trim replace=”"}出处:{/dede:trim}
{dede:trim replace=”"}本文链接:{/dede:trim}
{dede:trim replace=”"}<span([^>]*)>(.*)</span>{/dede:trim}
这些是过滤的规则   下面是替换的规则

比如 要采集的文章里出现网址 www.shugeer.com     如果你想替换成 www.52listen.com   那替换这个网址的规则就是
{dede:trim replace=”www.52listen.com”}www.shugeer.com{/dede:trim}
这只是替换 的方法 替换文字也可以 什么都行   可以替换多个规则

 

DedeCMS 采集技巧之指定文章来源

许多朋友在采集的时候会遇到这样的问题,一些网站上的文章来源里会出现两个甚至多个来源媒体,这样就很不容易写文章来源的匹配规则,而且许多来源都是有链接的,这样又增加了写匹配规则的难度,在这种情况下,我们很有必要为所有的采集文章指定一个固定的文章来源
具体方法如下:

在采集规则写好后,点击“更改配置”,在字段配置可以找到这段代码:
{dede:item field='source' value='' isunit='' isdown=''}
{dede:match}{/dede:match}
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:function}{/dede:function}
{/dede:item}

在这里我们可以给source的value附一个值,比如"织梦论坛",修改后的代码如下:
{dede:item field='source' value='织梦论坛' isunit='' isdown=''}
{dede:match}{/dede:match}
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:function}{/dede:function}
{/dede:item}

这样修改,就可以将所有采集到的文章的来源固定为“织梦论坛”了。

但是有些朋友还有些特殊的要求,需要为这个来源添加一个链接,还是很简单的,只需把value的值改成
<a href="http://bbs.dedecms.com">织梦论坛</a>

但是在默认的情况下,文章内容页中的文章来源是不会显示的,因为数据库中对source的长度做了限制,只要进入数据库中找到表dede_archives 修改source的长度就可以了

采集数据导入完成后,找到采集-批量维护-自动摘要/分页,然后[开始执行]就可以自动采集文章摘要了,最后更新一下HTML就OK 了

来自 http://blog.sina.com.cn/s/blog_6d2b3e4901013298.html

 

织梦采集规则中过滤与替换规则不要的内容

虽然现在大家都使用了火车头来采集数据,但也还有一些朋友使用dedecms自带的功能来采集数据,下面我把我在采集规则中过滤与替换规则的代码分享一下。

利用模块我们只要这样

 代码如下复制代码

{dede:trim replace='替换内容'}原内容{/dede:trim}

下面我们来看看

 代码如下复制代码

//过滤链接
{dede:trim replace=''}<a([^>]*)>(.*)</a>{/dede:trim}
//过滤js文件
{dede:trim replace=''}<script([^>]*)>(.*)</script>{/dede:trim}
//过滤注释
{dede:trim replace=''}<!--(.*)-->{/dede:trim}
//过滤表格,请注意,表格内容会被完全过滤
{dede:trim replace=''}<table([^>]*)>(.*)</table>{/dede:trim}
//过滤内建样式表
{dede:trim replace=''}<style([^>]*)>(.*)</style>{/dede:trim}
//过滤图片
{dede:trim replace=''}<img([^>]*)>{/dede:trim}
//过滤视屏等组件
{dede:trim replace=''}<object([^>]*)>(.*)</object>{/dede:trim}
{dede:trim replace=''}<embed([^>]*)>(.*)</embed>{/dede:trim}
//过滤iframe框架等
{dede:trim replace=''}<iframe([^>]*)>(.*)</iframe>{/dede:trim}
{dede:trim replace=''}<param([^>]*)>(.*)</param>{/dede:trim}
//过滤div(这里只规律包括class等对于div层的设置,层所包含的内容不会被过滤
{dede:trim replace=''}<div([^.]*)>{/dede:trim}
{dede:trim replace=''}</div>{/dede:trim}

来自 http://www.111cn.net/wy/Dedecms/49855.htm


织梦DEDECMS采集过程中经常用到的DEDE采集过滤规则

发布时间:02/04 来源:未知 浏览: 157 关键词:
 
一般在DEDE采集的过程中需要过滤或者删除再者是注释掉一些别人的信息,比如:超链接,图片等等之类的,,都需要用到这些过滤规则,把不想采集过来的资源全部都注释掉这样就大大减少了采集回来的垃圾信息,占用了自己的空间.

{dede:trim}<span(.*)>{/dede:trim}
{dede:trim}</span>{/dede:trim}
{dede:trim}<div(.*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}
{dede:trim}<li>{/dede:trim}
{dede:trim}</li>{/dede:trim}
{dede:trim}<ul>{/dede:trim}
{dede:trim}</ul>{/dede:trim}
{dede:trim}<font(.*)>{/dede:trim}
{dede:trim}</font>{/dede:trim}
{dede:trim}<table(.*)>{/dede:trim}
{dede:trim}</table>{/dede:trim}
{dede:trim}<tbody(.*)>{/dede:trim}
{dede:trim}</tbody>{/dede:trim}
{dede:trim}<tr(.*)>{/dede:trim}
{dede:trim}</tr>{/dede:trim}
{dede:trim}<td(.*)>{/dede:trim}
{dede:trim}</td>{/dede:trim}
{dede:trim}<a(.*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:trim}<iframe(.*)</iframe>{/dede:trim}
{dede:trim}<style(.*)</style>{/dede:trim}
{dede:trim}<script(.*)</script>{/dede:trim}
{dede:trim}<option(.*)</option>{/dede:trim}
{dede:trim}<select(.*)</select>{/dede:trim}

下面是过滤"视频"的代码
{dede:trim}<embed(.*)>{/dede:trim}
{dede:trim}</embed>{/dede:trim}
{dede:trim}<param(.*)</param>{/dede:trim}
{dede:trim}<object(.*)</object>{/dede:trim}

来自 http://www.zhankr.net/jiaocheng/dedecms/201502/580.html

普通分类: