從2.18.120813開(kāi)始增加了新的規(guī)則寫(xiě)法
支持XPath語(yǔ)法,以@XPath:開(kāi)頭,語(yǔ)法見(jiàn)?http://www.w3school.com.cn/xpath/index.asp
XPath語(yǔ)法測(cè)試?http://www.bejson.com/testtools/xpath/?寫(xiě)書(shū)源時(shí)可用
支持JSonPath語(yǔ)法,以@JSon:開(kāi)頭,語(yǔ)法見(jiàn)?https://blog.csdn.net/koflance/article/details/63262484
JsonPath獲取字符支持此種寫(xiě)法xxx{$._id}yyy{$.chapter}zzz
JSonPath語(yǔ)法測(cè)試?http://jsonpath.herokuapp.com?寫(xiě)書(shū)源時(shí)可用
支持用js處理結(jié)果,以@js:開(kāi)頭,結(jié)果變量為result 如 "@JSon:$.link@js:"http://chapterup.zhuishushenqi.com/chapter/"?+ encodeURIComponent(result)"
注意?JSon的值如果不是String,用js處理時(shí)需自己進(jìn)行類型轉(zhuǎn)換
注意?#替換規(guī)則在新語(yǔ)法下無(wú)法使用,新的語(yǔ)法用js處理結(jié)果,
原有的規(guī)則不變,見(jiàn)下方
書(shū)源規(guī)則說(shuō)明
書(shū)源規(guī)則基于HTML標(biāo)記,如class,id,tag等
想要寫(xiě)規(guī)則先要打開(kāi)網(wǎng)頁(yè)源代碼,在里面找到想要獲取內(nèi)容對(duì)應(yīng)的標(biāo)簽,
Chrome可以在網(wǎng)頁(yè)上右擊點(diǎn)擊檢查可以方便的查看標(biāo)簽
基本寫(xiě)法
@為分隔符,用來(lái)分隔獲取規(guī)則
每段規(guī)則可分為3段
第一段是類型,如class,id,tag,text,children等, children獲取所有子標(biāo)簽,不需要第二段和第三段,text可以根據(jù)文本內(nèi)容獲取
第二段是名稱,text. 第二段為文本內(nèi)容的一部分
第三段是位置,class,tag會(huì)獲取到多個(gè),所以要加位置,id類型不要加
如不加位置會(huì)獲取所有
位置正數(shù)從0開(kāi)始,0是第一個(gè),如為負(fù)數(shù)則是取倒數(shù)的值,-1為最倒數(shù)第一個(gè),-2為倒數(shù)第二個(gè)
!是排除,有些位置不符合需要排除用!,后面的序號(hào)用:隔開(kāi)0是第1個(gè),負(fù)數(shù)為倒數(shù)序號(hào),-1最后一個(gè),-2倒數(shù)第2個(gè),依次
獲取列表的最前面加上負(fù)號(hào)- 可以使列表倒置,有些網(wǎng)站目錄列表是倒的,前面加個(gè)負(fù)號(hào)可變?yōu)檎?/p>
@的最后一段為獲取內(nèi)容,如text,textNodes,href,src,html等
如果有不同網(wǎng)頁(yè)的規(guī)則可以用 | 或 & 分隔 或 %
|會(huì)以第一個(gè)取到值的為準(zhǔn),
& 會(huì)合并所有規(guī)則取到的值,
% 會(huì)依次取數(shù),如三個(gè)列表,先取列表1的第一個(gè),再取列表2的第一個(gè),再取列表3的第一個(gè),再取列表1的第2個(gè).......
如需要正則替換在最后加上 #正則表達(dá)式#替換為
例:class.odd.0@tag.a.0@text|tag.dd.0@tag.h1@text#全文閱讀
例:class.odd.0@tag.a.0@text&tag.dd.0@tag.h1@text#全文閱讀
BookSourceUrl 書(shū)源網(wǎng)址
BookSourceName 書(shū)源名稱
BookSourceGroup 書(shū)源分組
RuleSearchUrl 搜索網(wǎng)址
例:http://www.gxwztv.com/search.htm?keyword=searchKey&pn=searchPage-1
?為get @為post
searchKey為關(guān)鍵字標(biāo)識(shí),運(yùn)行時(shí)會(huì)替換為搜索關(guān)鍵字,
searchPage,searchPage-1為搜索頁(yè)數(shù),從0開(kāi)始的用searchPage-1,
page規(guī)則還可以寫(xiě)成{index(第一頁(yè)), indexSecond(第二頁(yè)), indexThird(第三頁(yè)), index-searchPage+1 或 index-searchPage-1 或 index-searchPage}
要添加轉(zhuǎn)碼編碼在最后加 |char=gbk
|char=escape 會(huì)模擬js escape方法進(jìn)行編碼
ruleFindUrl 發(fā)現(xiàn)規(guī)則
發(fā)現(xiàn)規(guī)則分為兩段,名稱和url用::分開(kāi),如
起點(diǎn)風(fēng)云榜::https://www.qidian.com/rank/yuepiao?page=searchPage
url規(guī)則和搜索規(guī)則一樣,多個(gè)規(guī)則用&&或換行分開(kāi),如
起點(diǎn)風(fēng)云榜::https://www.qidian.com/rank/yuepiao?page=searchPage&&原創(chuàng)風(fēng)云榜::https://www.qidian.com/rank/yuepiao?style=1&page=searchPage
也可以每行寫(xiě)一個(gè),域名可以省略,如省略會(huì)調(diào)用書(shū)源域名
起點(diǎn)風(fēng)云榜::/rank/yuepiao?page=searchPage
原創(chuàng)風(fēng)云榜::/rank/yuepiao?style=1&page=searchPage
RuleSearchList 搜索列表
例:class.list-group-item!0:%
RuleSearchAuthor 搜索里的作者
例:class.col-xs-2.0@text
RuleSearchKind 搜索里的類型
例:class.col-xs-1.0@text
RuleSearchLastChapter 搜索里的最新章節(jié)
例:class.col-xs-4.0@tag.a.0@text
RuleSearchName 獲取搜索里的書(shū)名
例:class.col-xs-3.0@tag.a.0@text
RuleSearchNoteUrl 搜索里的書(shū)鏈接
例:class.col-xs-3.0@tag.a.0@href
RuleSearchCoverUrl 搜索里的書(shū)封面
例:tag.img.0@src
RuleBookUrlPattern 書(shū)籍頁(yè)面里的URL正則
例:https?://www.piaotian.com/bookinfo/.*"
RuleBookName 書(shū)籍頁(yè)面里的書(shū)名稱
例:class.active.0@text
RuleBookAuthor 書(shū)籍頁(yè)面里的作者
例:class.col-xs-12.0@tag.small.0@text
RuleIntroduce 書(shū)籍頁(yè)面里的簡(jiǎn)介
例:class.panel panel-default?mt20.0@id.shot@text
RuleCoverUrl 書(shū)籍頁(yè)面里的封面
例:class.panel-body.0@class.img-thumbnail.0@src
RuleBookKind 書(shū)籍頁(yè)面里的分類
例:id.centerm@tag.td.3@text#.*:
RuleBookLastChapter 書(shū)籍頁(yè)面里的最新章節(jié)
例class.grid.0@tag.td.0@tag.a@text
RuleChapterUrl 書(shū)籍頁(yè)面里的目錄地址
如果目錄地址和書(shū)籍地址一樣則留空
例:class.list-group-item?tac.0@tag.a.0@href
RuleChapterUrlNext 目錄頁(yè)面里的下一頁(yè)目錄地址
如果沒(méi)有下一頁(yè)則留空
例:class.page.0@text.下一頁(yè).0@href?也可以獲取所有目錄頁(yè)url的列表,會(huì)依次獲取
例:class.chapter.0@tag.a@href (class.chapter.0)里包含第1頁(yè)第2頁(yè)第三頁(yè)等
RuleChapterList 目錄頁(yè)面的目錄列表
前面加 - 號(hào)倒序排列
RuleChapterName 目錄列表的章節(jié)名稱
例:text
RuleContentUrl 目錄列表的章節(jié)鏈接
例:href
RuleBookContent 章節(jié)內(nèi)容
例:id.txtContent@textNodes
如需獲取AJAX動(dòng)態(tài)內(nèi)容前面加$
例:$id.txtContent@textNodes
下面是最新的書(shū)源模板
{
?"bookSourceGroup": "書(shū)源分組",
? "bookSourceName": "書(shū)源名稱",
? "bookSourceUrl": "書(shū)源URL",
? "enable": true,
? "httpUserAgent": "httpuseragent",
?"loginUrl": "登陸URL",
?"ruleBookAuthor": "作者規(guī)則",
?"ruleBookContent": "正文規(guī)則",
?"ruleBookKind": "分類規(guī)則",
?"ruleBookLastChapter": "最新章節(jié)規(guī)則",
?"ruleBookName": "書(shū)名規(guī)則",
?"ruleBookUrlPattern": "書(shū)籍詳情URL正則",
?"ruleChapterList": "目錄列表規(guī)則",
?"ruleChapterName": "章節(jié)名稱規(guī)則",
?"ruleChapterUrl": "目錄URL規(guī)則",
?"ruleChapterUrlNext": "目錄下一頁(yè)規(guī)則",
?"ruleContentUrl": "章節(jié)URL規(guī)則",
?"ruleContentUrlNext": "正文下一頁(yè)URL規(guī)則",
?"ruleCoverUrl": "封面規(guī)則",
?"ruleFindUrl": "發(fā)現(xiàn)規(guī)則",
?"ruleIntroduce": "簡(jiǎn)介規(guī)則",
?"ruleSearchAuthor": "搜索結(jié)果作者規(guī)則",
?"ruleSearchCoverUrl": "搜索結(jié)果封面規(guī)則",
?"ruleSearchKind": "搜索結(jié)果分類規(guī)則",
?"ruleSearchLastChapter": "搜索結(jié)果最新章節(jié)規(guī)則",
?"ruleSearchList": "搜索結(jié)果列表規(guī)則",
?"ruleSearchName": "搜索結(jié)果書(shū)名規(guī)則",
?"ruleSearchNoteUrl": "搜索結(jié)果書(shū)籍URL規(guī)則",
?"ruleSearchUrl": "搜索地址",
?"serialNumber": 0,
?"weight": 0
?}