- UID
- 40
- 帖子
- 2796
- 精华
- 0
- 金钱
- 5024 点
- 阅读权限
- 200
- 在线时间
- 1313 小时
- 注册时间
- 2009-5-12
|
DedeCms采集规则写作教程
由于截图背景白色,这样可能分不清楚截图和文字分不清楚,因此用粉色背景来区分。
第一步、确定采集的网站(我们以DEDE的官方站做为采集站做示范)
http://www.dedecms.com/plus/list.php?tid=10
第二步、确定被采集站的编码。打开被采集的网页之后,查看源代码(IE:查看 - > 源代码)
在<head> </head>之间找到 charset 这个,后面就显示网页的编码了,截图的是 “gb2312”
第三步、采集列表获取规则写法 浙江站长站
来源网址写法 很明显pageno是表示分页页码 那么有多页列表的采集就要用“[var:分页]”来替换分页页码,截图如下
文章网址需包含 网址不能包含 这两个一般不用写,用于采集列表范围有很多不需要的连接才用到他来做过滤使用。
上面的网址并没有带有至于http://www.dedecms.com 为什么要在前面加上,这个就不要我说了吧。
如果只有一个列表页,那么在来源网址就直接写上网址就OK了。
注意这里,最关键就是这里。
下面就是“采集获取文章列表的规则写法”,
就是上面打开的被采集页面的源代码文件,找到文章列表之前 和本页面没有其他相同的代码
在DedeCms官方站的列表页文章列表之前和之后最近的且没有相同的是“<div class="newslist">”和“<div class="pages">”,分别写入“起始HTML”和“结束HTML”,写法看截图
第四步、采集文章标题,文章内容,文章作者,文章来源等规则写法,分页采集等。
“起始HTML”和“结束HTML”写法参考第三步中的“获取文章列表的规则写法”
下面讲的是如何采集分页内容 看截图圈着的地方 截图
文档是否分页 里面选择“全部列出的分页列表”
“起始HTML”和“结束HTML”写法参考第三步中的“获取文章列表的规则写法”
这里本来还有一张截图的,由于论坛配置,他现在显示在最上面.
在文章内容那里点上“分页内容字段”,不选择就不能采集。
“下载字段里的多媒体资源 ”这个是采集的时候把多媒体资源(视频,软件,图片等)下载到本地,也就是你的网站。
下面是过滤规则
过滤规则需要用 “正则表达式”来写,但是对于新手来说,这个简直是比登天还要难,具体的可以参考
http://www.dedecms.com/web-art/PHP_jiaocheng/20070420/38633.html这个网页
下面教大家一个简单的方法
把下面的过滤规则复制到你那里去,几乎就可以了,也可以自己分析一下,说不定你就懂了
{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}
当然 上面这些不能用来采集带有视频的,因为已经过滤了,后面的四行是过滤掉视频的。
自定义处理接口
这个说白了,就是PHP代码。只不过 “ @ me 表示当前标记值和最终结果“@ body表示原始网页”“ @ litpic 缩略图”,按照PHP的写法的就OK了,要不懂PHP的话这个我也帮不了你,你可以去慢慢学习。 |
|