读吧.net采集规则编写入门教程
读吧.net采集规则编写入门教程

?

举例中涉及到的采集地址:

http://www.fmx.cn/data/book/111/book111.html

就以本人今天发的规则为范例,向大家说一下编写采集规则的一般方法。

前面大概大家都会写,主要难点的地方,应该是章节列表地址 和 章节列表内容的匹配正则,以及章节内容地址。

  • ??
  • 章节列表地址:????http://www.fmx.cn/data/book/{read8bid}/book{read8bid}.html ??
  • 匹配正则?-?取得章节列表内容的变量组:???|<a?href=book(d+)_(d+).html>(.*)</a>|isU ??
  • 上面变量组中为章节标题的变量组序号:read8b2cvar3 ??
  • 章节内容地址:http://www.fmx.cn/data/book/{read8bid}/book{read8bid}_{read8b2cvar2}.html ??
  • 上面的{read8bid}变量,是重头戏,代表的是小说ID–这个看变量名字就看的出:read8 book id??声明此变量是读吧的,代表书籍ID。这个变量可以在任何不涉及到匹配正则的规则里用到,用来代表小说ID,也就是你要指定默认1-500书号的那个“书号”。理解了这个,一些简单的地址大家就都会写了。

    这里是原来的样子;

    在本例中,小说ID=111,也就是说111={read8bid},或者反过来说。

    匹配正则也是读吧采集规则里的重头,大部分人的跌倒都是在这里。首先要理解所谓“匹配”这个概念。
    在读吧规则中,凡是用()括起来的,就代表需要匹配——说白了就是读取并纪录这个数值,把它指定给已经规定好的正则变量。
    在本例中,<a href=book111_1.html>{dy}章</a> 这个是查原文件得到的——任何采集都是依靠读取原文件,就是说只有明文写在原文件里的内容才能被读到,而用JAVA或者IFRAME等等调用的内容采集器是读不到的,虽然你可以在前台看到。这也是为什么有的地址需要匹配二次的原因——比如起点,你在看小说的页面察看原文件不会看到内容,只有靠分析得到它调用的真正页面——一个TXT文件。
    下面就是匹配正则的写法了。书生有一个帖子其实已经说的很明白了,我可以引在下面大家看一下:


    首先说明一下读吧采集规则中正则表达式的基本结构。
    以“|<a href=”view_book.asp?id=(d+)” title=.*>(.*)</a>|isU”为例。

    开始和末尾的“|”和“|isU”,是起始符和结束符,必须得跟上,其含义无需了解。

    中间部分,就是相应的字符串了。字符串含义:

    如上所言的字符串或字符由于都有特定含义,所以如果在要匹配的字符串中出现上述字符,就需要转义,即用转义符“”放在前面表示后面跟着的是一个符号。
    而3.3中,细心的朋友可以发现“/”前面不再需要转义符了,因为起始结束符使用了“|”而不是原来的“/”,所有不会和内容里面的“/”冲突了,就不再需要進行转义了。

    看起来很简单,但是因为语言太精炼,新手理解起来可能有点障碍,下面我通俗一点说明一下。

    简单来说,一个匹配章节正则的组成应该是这个样子:

    ?

    那个|和|isU??,是读吧内部用来区别这段代码的,可以理解成是用来声明两个||中间的部分是正则-|| is U 嘛。
    有一点需要理解的就是,我们用这个正则的目的是用来得到章节名称。也许会有人不大明白这个是干嘛的——至少我开始的时候就不知道。比如我就不知道这里为什么不用其他规则一样的用标签来表示,非要用匹配正则。但就是这么规定的,咱不是书生,不能改变规定,只有适应这个规定。
    明确了正则的作用,下面就好办了,就是找到含有每个章节名称的HTML代码。在本例中是这样的:

  • ……<a?href=book111_1.html>{dy}章</a></td><td?align=center?width=50%><a?href=book111_2.html>第二章</a></td></tr><tr><td?align=center?width=50%><a?href=book111_3.html>第三章</a>…… ??
  • ?

    提炼出来,就是这一部分:<a href=book111_1.html>{dy}章</a>
    当然你也可以说是这部分:<tr><td align=center width=50%><a href=book111_2.html>第二章</a></td></tr>
    或者这样:href=book111_1.html>{dy}章</a>
    总之,和标签规则一样,只要考虑到这个语法结构的{wy}性就可以了。我个人的习惯是两边各取一个完整的<>。

    <a href=book111_1.html>{dy}章</a>

    下一步就是针对它写正则。仔细研究一下书生说的代码含义,再多看看例子——自带的起点和翠微居采集规则就是{zh0}的例子,可以通过后台 修改规则 察看。
    我这里总结出常用的几种代码,当然也是通过观察大量正则得出的。

    ?

    简单吧?就两种:

    ?

    分析代码:

    ?

    伪正则:

    ?

    因为.也是一种正则符号,所以上面的 .html为了不冲突(不被服务器理解为正则),所以在前面加。同时正则需要用||isU装起来“`^o^
    得到最终正则:

    ?

    至于这里的d+为什么用带括号的,或者怎么判断需要不需要带括号,我在下面再详细说明。这里大家要注意.*一定要带括号,因为这是我们要得到的部分——章节名称。

    至此章节列表的匹配正则解决了一半。下面还要说明上面的哪个是章节名。
    上面变量组中为章节标题的变量组序号:
    这个看起来莫名其妙,其实很简单,就是数一数你上面刚写的正则里,第几个带括号的变量是章节名称。这里很明显是第3个,所以选择read8b2cvar3。具体我也会在下面说明。
    选好,章节的问题就xx解决了。

    下面说到的也是不大容易理解的部分:
    章节内容地址:
    这部分代码怎么写。根据开头我说明的,这里大家知道了可以把111替换为{read8id},得到下面的形式:
    /{read8id}/book{read8id}_1.html
    难题出来了:那个_1.html里的1,怎么办?
    我们先来分析一下这个地址。这个地址的排列是很规则的,很明显,这里说的是111这本书的第1页,至于这第1页是序还是{dy}章我们不去考虑。那这个{dy}页的这个连接是怎么得出来的呢?
    我们回过头看刚才的章节列表可以知道,这个连接是从

    ?

    得到的。
    也就是说,我们点击了章节列表中的 {dy}章 ,跳转到了
    ????这个地址。

    这里我们暂时放下,说一下所谓“变量组”的概念。具体的我没学过,高中没毕业就下来了;所以我只能按我自己的理解通俗地说一下。如果有说错的地方,还请高人指点。虽然一堆高人都憋着不出来指点一下我们这些新手,但我对高人的智慧还是很佩服的。

    所谓 变量组 ,我们可以理解为是一个容量组,这个容量组由一个抽屉和一个带锁的盒子组成。变量组有两种用法(或者说两种形式),加括号的和不加括号的,可以理解为加括号的就是锁进盒子里自己用的,不加括号的就是放在抽屉里大家随便用的。

    象我们上面的章节列表正则表达式:

    ?

    里边,(d+),(d+),(.*)都是我们锁进盒子里的,分别代表的是111,1,{dy}章。
    刚才可能大家有疑问,我们明明只要 {dy}章 这个就可以了,其他的为什么也锁进盒子里?
    确实是这样。因为章节列表匹配正则主要就是为了得到“{dy}章”这个值,其他两个对这个没什么意义。

    那么分析一下具体的内容地址,刚才我们不知道怎么表达的_1.html。

    因为这个是由章节列表跳转得到的,很明显,

    ?

    这样有没有清楚一点?
    对应的,_1.html中的1,就是我们刚刚锁进盒子里的第2个变量。这个变量的表达式就应该是{read8b2cvar2}

    总结一下。

    这些主要的弄懂了,剩下的,关于地址里该用哪个变量调用也就知道了。今天的课程到此结束。

    BTW:其实还应该有一点疑问的,正如我刚才所说,我们下面用到的只是变量2,那上面文章列表正则干嘛把111那个d+也用括号括起来?
    呵呵,因为我在写章节列表正则的时候并不知道下面将用到哪个变量——当然很大一部分原因只是个人习惯而已。因为本例即使用到也可以用{read8id}代替。很明显在本例中{read8b2cvar1}={read8id}。

    Related posts:

    1. 文本xxxx和草根小更新 ? New! 草根做了若干Bug的修改 对搜索等方面做了增强,更加适合我这种重度搜索者使用,并且设计理念更加倾向实时性信息获得。有一些想法,还需要摸索如何实现。在右键菜单中,可以配置自己的科学网址。草根主要是我自己觉得上网的时候有时侯不是很方便,而开发的自用软件,当然以后会增加更多的想法进去。现在还很简陋,望谅。 ROST CM对文件框做了位置调整。收费版中增加了简单倾向统计。 ROST内容分析系统目标是海量信息采集、深度内容分析、精准情报展示的研究性软件,主要功能有:从动态更新的互联网188亿个网页海量采集信息,以及对博客、微博客、浏览记录、各类日志、网页、本地文件、互联网用户评论等各类文本源进行分词、词频统计、相关性、相似性、聚类、分类、情感倾向分析、共现分析、共词分析从而构建出语义网络、社会网络、关系网络、复杂网络。可将结果在本软件中分析,也可以导出到SPSS、Matlab、Netminer、Netdraw等软件进一步分析。 该系统可应用各学科的研究,如:新闻学研究社会舆情、网络民意等;社会学研究网络社会形态、民众公开聊天内容,微博客中闲言碎语中的宏大社会关系等;历史学中的人物网络关系,时空路线图等;文学类的各类诗歌、文献相似性研究等;经济学中的基于社会网络和生活搜索的经济评估;管理学中的人力资源管理;信息学中基于共词分析的学科热点趋势分析等等,该系统是计算机科学、信息科学前沿理论的一次跨科学扩展,为各交叉科学提供基于语义内容分析的研究方法。目前国内外的用户包括:Cambridge University(剑桥大学)、Loughborough...
    2. 错误?1?无法切换视图: 验证 (XHTML 1.0 Transitional): 元素“link”不能嵌套在元素“html”中。?C:\inetpub\wwwroot\WebSite15\Navigation.master?6?4?C:\…\WebSite15\ ? ? <%@ Master...
    3. 错误?1?验证 (XHTML 1.0 Transitional): 属性“background”不是元素“td”的有效属性。?C:\inetpub\wwwroot\WebSite15\Navigation.master?26?55?C:\…\WebSite15\ ? ? <%@ Master Language=”C#”...
    4. 泛域名自动解析 ? 如何让您的用户通过形如http://55.alex.cn的方式访问他的网站,而不是通过http://www.alex.cn/home/shop/55/的链接访问? windows平台下的说明: 通过ISAPI rewriter就可以达到这个目的 ISAPI rewriter有两个版本,一个版本为Lite版,该版本为免费的,还有一个FULL版,该版本为收费版(30天试用期),价格为$69. Lite版不支持PROXY方式,也就是配置完成后,你在浏览器内输入http://55.alex.cn后,浏览器地址栏内容会跳转为http://www.alex.cn/home/shop/55/, 而Full版则不会变化....
    5. 初级问题:关于找不到服务器或DNS错误 ? 我在LAN里: 服务器已设置了虚似目录,目录里放了一最简单的静态文件index.htm 在客户端访问 http://my-tomato/index.htm 时报错:找不到服务器或DNS错误 这是为什么呢????? 我在客户端 ping...
    6. 给IIS注册.net ? 原因: 用vs2005开发的asp.net应用程序需要使用.net framework 2.0,而在iis中的默认.net环境是1.1。这时将发生不可识别的节点的问题。 解决办法: 将.net环境升级为2.0,开始-》运行-》cmd-》 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i...
    7. 怎么老是找不到服务器或dns错误 ? ? 只要正处在联网状态,无论还有没有网费,都能连接到网关和服务器。分几种情况。 浏览网页时候那可能是网络设置有问题或者网站域名本身不存在。别的情况下一般还是自己的连接设置有错误或者dns找不到。得先确定问题出自本机还是远端服务器。 ...
    8. 中药xx药——穿心莲 ? 一说到xx药,很多人就会想到头胞、青霉素等西药提高xxx,其实这个是误区,中药也有xx药,疗效迅速且副作用小。中药xx运用最广泛的可能就是穿心莲了,我想大家可能并不陌生。   穿心莲——别名一见喜、榄核莲、印度草、斩蛇剑、苦胆草、蛇草、四方莲、四方草、雄胆草、春莲夏柳;日行千里、……。本药系爵床科须药草属一年生草本植物,我国的穿心莲最早在广东及福建南部引种栽培,经过五千年中医药文明的大浪淘沙,穿心莲早已应用于民间,作为治痢及外科疮疡肿毒等各种疾病的要药。   穿心莲性味苦寒、xx,其主要作用是xxxx、凉血消肿。目前穿心莲有多种制剂,如水丸、蜜丸、胶囊、片剂、浸膏片、软膏、注射剂等等。日前由天津天士力推出的滴丸剂型因为是从穿心莲中提取的有效成份穿心莲内酯,纯度达98%,且是深加工产品,在xx功效上,比起其他剂型具有相当的优势,制剂的现代技术使xx的有效成份在体内溶出的速度的更快,吸收更好,有效成份当然就更容易发挥作用。   穿心莲的各种产品临床常用于xx各种感染性疾病,包括外伤感染、疖、痈、丹毒、上呼吸道感染、急慢性扁桃体炎、急慢性咽喉炎、急慢性xxxx、急性菌痢、急性胃肠炎、尿路感染、子宫内膜炎、盆腔炎、中耳炎、牙周炎等等。穿心莲内酯滴丸是天津天士力制药股份有限公司生产的xx上呼吸道感染(外感风热证)及xx性痢疾(湿热痢)的xx中药单体制剂;是在穿心莲内酯片基础上改制成的滴丸制剂,具有xxxx、xxxx等作用。与原剂型比较,具有服用剂量小,携带方便,吸收快的优点,尤其便于儿童服用等优点将成为人们家庭常备药和xx常用药。   穿心莲的副作用和毒性很小,临床应用一般是安全的,以穿心莲内酯滴丸为例,它通过改善机体免疫防御能力,发挥xxxx作用,无西药xxx耐药现象发生。而且滴丸颗粒小而圆滑,更便于儿童应用,薄膜包衣掩盖了中药的苦味,口感良好。   穿心莲——在经过现代技术的研制、提取、制造等多项创新后,逐步发展,成为代表中医药文明与科技新技术的xx良药。 本文来自:大众医药网 http://www.51qe.cn/zhongyao/2008/106279.html...
    9. 从客户端中检测到有潜在危险的 Request.Form 值错误解 asp.net程序运行时出现以下错误: “/news”应用程序中的服务器错误。 ——————————————————————————– 从客户端(ftbContent=”<P><A href=”http://l…”)中检测到有潜在危险的 Request.Form 值。...

    以上关联文章由 提供支持。

    郑重声明:资讯 【读吧.net采集规则编写入门教程】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
    —— 相关资讯 ——