Discuz!NT 2.5 正式版 下载
beta、RC版升级补丁
中秋模板发布
首届Discuz!NT 模板大赛圆满结束
著名音乐网站SoGua网、分贝网
采用Discuz!NT搭建社区
FIFA Online2官网论坛使用Discuz!NT
游戏城寨论坛使用Discuz!NT搭建
Discuz!NT 2.5正式开源 Discuz!NT文档中心
用户整合说明文档
Discuz!NT亮相微软Tech-Ed 2007
Discuz!NT情景搞笑短片抢先看
 
1/1页1 跳转到查看:622
发新话题 回复该主题

论坛大挪移的一些学习资料-测试

论坛大挪移的一些学习资料-测试

作者:采集之家-rq204

业务QQ:285576545
文章来源:
http://www.caijibbs.com/?action=show&id=20

这是我在学习过程中整理的.先讲一下正则,这是大挪移中写规则要用的..这个懂了,规则也就简单了..下边是具体采集时常用的几个正则..

(<span class="bold">)? 表示()内的内容可能出现 也可能不出现

[^<]* 表示不为<的任意字符循环任意多次,碰到第一个<就停止匹配

[^"]*? 表示 不为引号"的字符循环任意多次,碰到第一个"就停止匹配

在正则里面
以下字符: . [ ] ( ) ?  * ^ { } $ |

都是有特殊含义的,他们都有是自己的正则匹配的特殊含义

<a href="">******<span class="bold">******</span></a>

刚才里面 ****** 表示变量

如果这些里面包含了这些字符 比如 . [ ] ( ) ?  * ^ { } $ |

都必须加每个前面加一个反斜杠\

. [ ] ( ) ?  * ^ { } $ |

几个字符在正则中表示:

.  除换行外的所有字符 ,因为我们把换行替换掉了,所以我们想匹配任意字符,就用它

[ ] 两个中表示在这些字符中选

( )表示这里面的字符串,一般用来包含一个字符串 或作为一个matches

匹配出来的内容

像刚才的 (?<url>)    ? 表示 前面的字符或字符串 0次或1次

  表示 前面的字符或字符串 1次或1次以上

^ 表示反 如刚才的 [^"] 就是不是"的所有字符

{ } 一般结合 循环次数来使用

如 [abc]{1,8} 这表示由a,b,c这样的三个字符任意组成一个最长8最短1的字符串

^还表示开头  $ 表示结尾

如一段话^s.*t$  表示从s开头t结尾,中间可以是任意字符的字符串

| 表示或者的关系




下边讲版块列表的获取..

版块列表 (这是非常简单的),需要的参数url,title
参数格式:
(?<url>[^"]*?)          版块的url地址
(?<title>[^<]*)        版块的名称

例:<a href="forum-10-1.html"><span class="bold">□-Discuz!程序发布</span></a> 的正则如下:

  <a href="(?<url>[^"]*?)">(<span class="bold">)?(?<title>[^<]*)(</span>)?</a>

现在一下分析 (?<url>[^"]*?) 和 (?<title>[^<]*)
(?<url>)里面的  [^"]*? 是获取url的正则    [^<]* 是获取名称的正则
[^"]*? 表示 不为引号"的字符循环任意多次,碰到第一个"就停止匹配
[^<]* 表示不为<的任意字符循环任意多次,碰到第一个<就停止匹配

                                    版块列表样式,这用的是程序自带的参数fid,CurrentPage

discuz论坛基本都是这样 forumdisplay.php?fid=[fid]&page=[CurrentPage]
[fid]表示当前的版块id号,[CurrentPage] 表示当前正在采集的页面,都是变量,这在转移器里是系统变量,必须用[fid] [CurrentPage] 
当然,你也可以采静态页面....也用上边的两个参数..

未完.. 
Tags:
正则

TOP

 

回复:论坛大挪移的一些学习资料-测试

学习采集来了,呵呵

TOP

 
1/1页1 跳转到
发表新主题 回复该主题