A-A+

【DEDECMS采集基础教程】过滤规则篇(四)

2008年07月14日 网站运维 暂无评论 阅读 3,710 views 次

-------------------------------------------
注:写此文的目的是将自己对dede的采集经验总结下,适合新手使用
有什么不明白的地方可以PM我或在下面留言,我有时间会帮你解答。
对DEDE我也是新手,还有很多不明白的欢迎一起交流学习。
本教程我会分成几章写完,由于时间的关系先些第一部分
转载请注明Johnny原创:http://www.bokelife.com/show-418-1.html

【DEDECMS采集基础教程】列表设置篇(一)

【DEDECMS采集基础教程】采集规则篇(二)

【DEDECMS采集基础教程】进行采集篇(三)

【DEDECMS采集基础教程】过滤规则篇(四)

【DEDECMS采集基础教程】分页采集篇(五)
-------------------------------------------

经过前面三篇的介绍,对于dede的采集我们也有基本的了解和操作能力,对于采集简单的内容来说也足够用了。然而对于大多数网站来说,现在广告是网站收入的一个重要来源,因此在网页中常会嵌入广告代码。我们在采集的时候,如何将其过滤掉,从而避免了自己帮别人免费挂广告呢?又例如某些文章里面某些关键词有了他们自己网站上的其他文章链接,你是否愿意让你辛苦采集回来的文章里包含了他的链接?这一切,只需简单的过滤规则,即可给你一篇干净的文章。

dede的过滤规则并不难写,其写法如下面
{dede:trim}这里就是要过滤的内容{/dede:trim}
如果你要过滤的内容比较简单的代码,完全可以直接在“{dede:trim}”和“{/dede:trim}”之间写上,如果比较复杂的就要用到正则了。

1、例如采集中去除内容里的超链接的规则如下:
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
假如要将所有超链接内容都去除,规则是:{dede:trim}<a([^>]*)>([^<]*)</a>{/dede:trim}
这两个规则的不同通过下面代码来解释
例如文章代码中包含着如下内容:<a href="#">超链接</a>
通过第一个规则,我们采集来的结果是:超链接
通过第二个规则,我们采集来的结果是:空白,即是将所有内容都过滤掉了。

2、过滤广告
对于广告来说,过滤规则就得针对html中看到的内容使用规则了,例如某些广告仅仅是引用某个JS文件,例如
<script src='/plus/ad_js.php?aid=4' language='javascript'></script>
这样的规则只需
{dede:trim}<script(.*)>{/dede:trim}
{dede:trim}</script>{/dede:trim}
如果某些广告的内容是JS代码写在<script></script>区间里的,例如GG的广告,那么过滤规则应该是:
{dede:trim}<script>(.*)</script>{/dede:trim}

3、下面是一些常识用的过滤规则

{dede:trim}<!--(.*)-->{/dede:trim}
{dede:trim}<select([^>]*)>([^>]*)</select>{/dede:trim}
{dede:trim}<option([^>]*)>([^>]*)</option>{/dede:trim}
{dede:trim}<select([^>]*)>{/dede:trim}
{dede:trim}</select>{/dede:trim}
{dede:trim}<param([^>]*)>{/dede:trim}
{dede:trim}<embed([^>]*)>([^>]*)</embed>{/dede:trim}
{dede:trim}<embed([^>]*)>{/dede:trim}
{dede:trim}</embed>{/dede:trim}
{dede:trim}<object([^>]*)>([^>]*)</object>{/dede:trim}
{dede:trim}<object([^>]*)>{/dede:trim}
{dede:trim}</object>{/dede:trim}
{dede:trim}<OBJECT([^>]*)>([^>]*)</OBJECT>{/dede:trim}
{dede:trim}<OBJECT([^>]*)>{/dede:trim}
{dede:trim}</OBJECT>{/dede:trim}
{dede:trim}<iframe([^>]*)>([^>]*)</iframe>{/dede:trim}
{dede:trim}<iframe([^>]*)>{/dede:trim}
{dede:trim}</iframe>{/dede:trim}
{dede:trim}<IFRAME([^>]*)>([^>]*)</IFRAME>{/dede:trim}
{dede:trim}<IFRAME([^>]*)>{/dede:trim}
{dede:trim}</IFRAME>{/dede:trim}
{dede:trim}<font([^>]*)>([^<]*)</font>{/dede:trim}
{dede:trim}<font([^>]*)>{/dede:trim}
{dede:trim}</font>{/dede:trim}
{dede:trim}<a([^>]*)>([^<]*)</a>{/dede:trim}
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:trim}<td([^>]*)>([^>]*)</td>{/dede:trim}
{dede:trim}<td([^>]*)>{/dede:trim}
{dede:trim}</td>{/dede:trim}
{dede:trim}<tr([^>]*)>([^>]*)</tr>{/dede:trim}
{dede:trim}<tr([^>]*)>{/dede:trim}
{dede:trim}</tr>{/dede:trim}
{dede:trim}<tbody([^>]*)>([^>]*)</tbody>{/dede:trim}
{dede:trim}<tbody>{/dede:trim}
{dede:trim}</tbody>{/dede:trim}
{dede:trim}<table([^>]*)>([^>]*)</table>{/dede:trim}
{dede:trim}<table([^>]*)>{/dede:trim}
{dede:trim}</table>{/dede:trim}
{dede:trim}<span([^>]*)>{/dede:trim}
{dede:trim}</span>{/dede:trim}
{dede:trim}</IFRAME>{/dede:trim}
{dede:trim}<script>(.*)</script>{/dede:trim}
{dede:trim}<script(.*)>{/dede:trim}
{dede:trim}</script>{/dede:trim}

-----------------------------------
对于下面这些规则就请慎用
-----------------------------------

{dede:trim}<div(.*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}
{dede:trim}<stong>{/dede:trim}
{dede:trim}</stong>{/dede:trim}
{dede:trim}<div(.*)>(.*)</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}
{dede:trim}<div(.*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}

以上就是本篇要介绍的内容,正则也许并不是每处都用得上,但当你了解其写法后,自己也可以写出一些更加适合自己使用的规则出来。

给我留言

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

Copyright © 寂寞部屋 保留所有权利.   Theme  Ality

用户登录