探究Ptcms小说采集规则

1、首页的更新列表页采集 ,新增http://www.31xs.org/首页采集规则
PTCMS内置
[subnovelid] // floor(小说ID/1000)
[novelid] //小说ID
[页码] //列表采集页码
[空白] //空白 包含换行和空格
[内容] //等同于 .+? 匹配之间的任何字符
[数字] // 等同于 \d+ 匹配0-9数字组合
常用正则,以下的自己百度下
.+? //最小匹配 . 除了换行符之外的任意字符,+ 重复一次或一次以上
//? 懒惰模式
\d+ // \d 表示匹配的是数字,+ 表示重复一次或者多次
//* 表示重复零次或者多次
\w+ //[\w]+和\w+没有区别,都是匹配数字和字母下划线的多个字符;
//[\w+]表示匹配数字、字母、下划线和加号本身字符;
\s //\s是指空白,包括空格、换行、tab缩进等所有的空白,而\S刚好相反
\r\n //\n是换行。\r是回车。

[]
表示数组而非排列,即不按固定次序位置排列;
在[]内的字符可以任意次序出现。
[ABC]+
可以匹配"AAABBBCCC,BBBAAACCC,BACCBACAACBAC,…",不是一定按固定A…B…C…的次序排列。
[\w./-+]+
是匹配\w [0-9a-zA-Z_] 或 . 或 / 或 - 或 + 字符;
在[./-+]内均表示字符本身;
在[]+外表示{1,}至少1次或多次;
在[.]内点,不是任意字符的意思,就是匹配点.字符本身,点.可以不需要加反斜杠.。
在[]内特殊字符,表示匹配特殊字符本身,不需要加反斜杠,
在[]外特殊字符,表示匹配特殊字符本身,必须要加反斜杠。

()用于捕获匹配的字符串,比如:a(.?)b捕获a和b之间的任何字符(除了换行符外)
而且()还用于括起正则表达式中的小组,比如:^(a|b).
$匹配以a或b开头的任何字符串
另外,(?:pattern)是一个非捕获匹配,就是匹配但不捕获字符串
(?<=pattern)逆序肯定环视,表示所在位置左侧能够匹配pattern
(? (?=pattern)顺序肯定环视,表示所在位置右侧能够匹配pattern
(?!pattern)顺序否定环视,表示所在位置右侧不能匹配pattern
这些都和()是不同的概念,不要混淆
[]用于定义匹配的字符集或字符范围,比如:[a-z]匹配一个英文小写字母范围从a到z
{}用于定义匹配的次数,比如:a{1,}匹配a至少一次

(1)采集地址
列表页地址:

血红小说网 http://www.xuehongxs.com/xuanhuan/
88读书 https://www.88dus.com/sort1/1/
顶点小说 http://www.23us.tv
31xs.org http://www.31xs.org/

信息页地址:

血红小说网 http://www.xuehongxs.com/[subnovelid]_[novelid]/
88读书 http://www.88dus.com/xiaoshuo/[subnovelid]/[novelid]/
顶点小说 http://www.23us.tv/xs/[subnovelid]/[novelid]/
31xs.org http://www.31xs.com/[subnovelid]/[novelid]/

血红小说网

好看的玄幻小说最近更新列表

88读书

玄幻魔法

顶点小说

最近更新小说列表

31xs首页

最近更新小说列表

目录页地址:

血红小说网 http://www.xuehongxs.com/[subnovelid]_[novelid]/
88读书 http://www.88dus.com/xiaoshuo/[subnovelid]/[novelid]/
顶点小说 http://www.23us.tv/xs/[subnovelid]/[novelid]/
31xs.org http://www.31xs.com/[subnovelid]/[novelid]/

(2)更新列表规则

山村最强小农民
不灭修罗
御天神凰
杂家弟子在都市

小说名称:

血红小说网 [内容]
顶点小说 lass=“s2”>.+?blank">(.+?)
31xs.org lass=“s2”>.+?blank">(.+?)

小说书号:

血红小说网
顶点小说 “s2”>.+?href="/xs/\d+/(\d+)/".+?blank">.+?
31xs.org

“s2”>.+?href=".+?/\d+/(\d+)/".+?blank">.+?

第三百四十七章 路修好了(10-04)
第一千二百九十一章执法守护者出面
第二百零九章 身世
八章 箭上弦 太子挑衅

更新标识:

血红小说网 .+?
88读书
顶点小说 “s3.+?href=”/xs/\d+/\d+/(\d+).html"
31xs.org “s3.+?href=”/\d+/\d+/(\d+).html"

(3)信息页规则

小说名称:

血红小说网

(.+?)

88读书

[内容]

顶点小说
31xs.org

[内容]

血红小说网

血红小说网 > 玄幻小说 > 山村最强小农民最新章节列表

山村最强小农民

作    者:赵小刚

动    作:加入书架, 投推荐票, 直达底部

最后更新:2018-10-03 21:14

下    载:( TXT,CHM,UMD,JAR,APK,HTML )

大哥死的突然,留下一个仙女一般的嫂子让赵小刚照顾,但是村里人都说她是扫把星,克夫命,赵小刚却不信邪,于是……

88读书














当前位置:88读书网 > 玄幻魔法 > 不灭修罗
不灭修罗

不灭修罗

作者:冷面加糖 状态:连载中 更新时间:10-04最新章节:第一千二百九十三章试仙石开启
三界众生,我为修罗。战天斗地,不死不灭! 一位废物少年偶得修罗传承,从此走上了逆天之路。

顶点小说


   
   
   
   
   
   
   
   
   
   
   
   

 

圣尊之门

作  者:引玉

动  作:加入书架直达底部

最后更新:2018/10/5 7:32:49

最新更新:第一百一十九章 饶我不死的都死了

天地不仁,囚万物于牢笼。不甘做天地囚徒的太古神魔合力征天,一败涂地。遂,设神魔之门,布万古之局。主角穿越而来,记忆残缺,又浴血身死,圣魂重生,且看他手持神魔圣剑、身入神魔之门,一剑把苍穹刺个窟窿。Ps:这就是一个穿越者倒霉身死之后,再次重生,一人一剑一柄枪…

31xs首页













绝品邪少

作    者:陨落星辰

动    作:加入书架, 直达底部, 错误反馈

更    新:2018-10-04 22:07:14

最    新:玛雅征服史外传

谭笑笑说:我是极品美女! 彭莹诗说:我是极品熟女! 尹宝儿说:我是极品萝莉! 上官无道说:我还是极品公子呢…… 叶潇震撼登场:吵什么吵,少爷才是主角,少爷的口号是践踏一切极品,只做人间绝品!

小说作者:

血红小说网

作    者:(.+?)

88读书 og:novel:author" content="[内容]"
顶点小说

作.+?者:(.+?)

31xs.org og:novel:author" content="[内容]"

小说简介:

血红小说网
(.+?)
88读书 og:description" content="[内容]"
顶点小说
(.+?)
31xs.org
(.+?)

小说封面:

血红小说网

小说分类:

血红小说网 html">(.+?) >
88读书
顶点小说
31xs.org

小说进度:

血红小说网 type=img">
88读书
顶点小说
31xs.org

(4)目录页规则

章节ID:

血红小说网
  • 88读书
  • .+?
  • 顶点小说
    .+?
    31xs.org
    .+?

    血红小说网

    88读书

    顶点小说

     
    《圣尊之门》最新章节(提示:已启用缓存技术,最新章节可能会延时显示,登录书架即可实时查看。)
    第一百一十九章 饶我不死的都死了
    第一百一十八章 自断一臂,饶你不死
    第一百一十七章 三枪
    第一百一十六章 名师

    31xs首页

    绝品邪少最新章节 (本站开启缓存,刚刚更新的章节书架实时显示。)
    绝品邪少全部章节
    加入书架
    错误反馈
    正文
    第一章 谁睡了我
    第三章 亲密接触
    第四章 小保安
    第五章 冤家路窄

    章节名称:

    血红小说网
  • (.+?)
  • ">
    88读书
  • (.+?)
  • 顶点小说
    (.+?)
    31xs.org
    (.+?)

    章节地址:

    血红小说网
  • 88读书
  • 顶点小说
    .+?
    31xs.org
    .+?

    (5)章节页规则

    接口URL:

    血红小说网 http://app.api.ptcms.com/api/chapter/get.xml?url=[url]
    88读书
    顶点小说
    31xs.org

    内容规则:

    血红小说网
    (?:
    88读书
    [内容]
    顶点小说
    (?:
    31xs.org
    (?:

    血红小说网

        烈日炎炎,天空之上犹 .......................... 立刻心中有了一个大胆的主意。

    88读书

     
        “爷爷,你怎么样了?你别吓我啊!”
    ..........................

    顶点小说


      <span class="Banner"> 亲 ~ 本站域名:"166小说"的简写谐音166xs.com,很好记哦!www.166xs.com 好看的小说</span>
      <strong class="Book_Hot">强烈推荐:</strong> &nbsp;&nbsp;&nbsp;&nbsp;“老子居然又重生了?”陈玄机站在铜镜前,里面是一张略显稚嫩的脸孔,但剑眉星目,鼻若悬胆,模样甚是好看, ..........................

    31xs首页

     

    时间总是飞快的, ..........................

    2,测试后内容不对
    探究Ptcms小说采集规则_第1张图片

    (?:\<\!\[CDATA\[)?[内容](?:\]\]\>)?
    没有写对
    [内容]
    为空

    探究Ptcms小说采集规则_第2张图片

    探究Ptcms小说采集规则_第3张图片

    vim  /usr/share/wwwphp/ptcms/application/rule/model/collect.php
    $this->progress("《{$zym_31}》添加新书成功");
    $this->progress("《{$zym_31}》开始处理章节");;
    $this->progress("《{$zym_31}》需要处理章节数目:" . count($zym_20));
    $this->progress("《{$zym_31}》更新小说完成");
    
    //ok
    $this->progress("《{$zym_50['data']['novelname']}》添加新书成功,书号{$zym_30}"); 
    $this->progress("《{$zym_50['data']['novelname']}》添加日志成功"); 
    
    $zym_31 = $this->model->flush('novelsearch_info', $zym_21['novelid'], 'novel.name'); 
    print_r($zym_31); 
    var_dump($zym_31); 
    
    
    vim  /usr/share/wwwphp/ptcms/ptcms/core/model.php
    
    //刷新
        public function flush($table, $id, $field = ''){
            $this->rm($table,$id);
            return $this->get($table,$id.$field);
        }
    //$zym_31得到是一个采集信息数组
    
    vim  /usr/share/wwwphp/ptcms/application/rule/model/collect_base.php
    public function progress($zym_6, $zym_7 = 'success', $zym_11 = false) 
     { if (empty($_GET['backRun'])) 
       { switch ($zym_7) 
       { case 'success': $zym_13 = 'green'; break; 
         case 'error': $zym_13 = 'red'; break; 
    	 case 'warning': $zym_13 = "orangered"; break; 
    	 case 'info': $zym_13 = '#333'; break; 
    	 default: $zym_13 = $zym_7; 
       } 
       $zym_12 = $zym_11 ? 'bold' : 'normal'; 
       echo "{$zym_6}
    "; @ob_flush(); @flush(); } else { log::record($zym_6); } }

    错误原因是

    vim  /usr/share/wwwphp/ptcms/application/rule/model/collect.php
    $zym_31 = $this->model->flush('novelsearch_info', $zym_21['novelid'], 'novel.name'); //这里得到的是信息数组
    改为
    $zym_31 = $this->model->get('novelsearch_info', $zym_21['novelid'], 'novel.name'); //这里得到的是name
    

    按书号采集成功!

    你可能感兴趣的:(Fedora,Php开发,ptcms)