關(guān)于關(guān)關(guān)采集器采集規(guī)則
相信小說網(wǎng)站的站長(zhǎng)很多都使用過關(guān)關(guān)采集器陌凳,剛開始使用的時(shí)候都是直接使用別人給的規(guī)則弓乙,直接拿來(lái)用憨闰。但是當(dāng)發(fā)現(xiàn)一個(gè)不錯(cuò)的網(wǎng)站時(shí)拆宛,奈何又沒有對(duì)應(yīng)的采集規(guī)則怎么辦?求朋友幫忙整一個(gè)規(guī)則键袱,或者是上某寶花錢買一個(gè)燎窘?其實(shí)都沒必要,求人不如求己蹄咖,只要學(xué)會(huì)寫一個(gè)規(guī)則褐健,其他的網(wǎng)站的采集規(guī)則都大同小異。以下是關(guān)于關(guān)關(guān)采集器采集規(guī)則的幾點(diǎn)說明澜汤。
??首先需要了解下?關(guān)關(guān)采集器通用替代符
???1.??\d*??表示數(shù)字
???2.??\s*??空格或換行
???3.??.+??表示不需要的字符
???4.???.*?表示字符
???5.??()??表示需要截取的部分
???6.????((.|\n)*)?章節(jié)內(nèi)容截取
???7.??.??表示單個(gè)字符
???8.??$???表示結(jié)束字符?例如正則表達(dá)式weasel$?能夠匹配字符串"He's?a?weasel"的末尾蚜迅,但是不能匹配字符串"They?are?a?bunch?of?weasels."。
???9.??^??表示一行的開始?
???10.??< [^<]*((?<=<(?:img|IMG)[^>]*(?:(?:src|SRC)(?:\s*=\s*(?: ["']?))))(?:[^\s"'>]*)\.(?:jpg|gif|jpeg|bmp|png|GIF|JPG)) [^>]*>?萬(wàn)能圖片代碼
第一步?
1.尋找目標(biāo)站 這里我們拿 帝王小說?https://www.aidelai.cc/為例子?
2.復(fù)制原有規(guī)則為采集模板 aidelai.xml 重新復(fù)制一份
3.打開關(guān)關(guān)規(guī)則編輯器? 選擇 xs8xs.xml 讀取
4.開始編寫規(guī)則.
第二步
1.RULEID(規(guī)則編號(hào))這個(gè)任意寫即可
? ? 2.GetSiteName(站點(diǎn)名稱)這里我們寫xs8xs
? ? 3.GetSiteCharset(站點(diǎn)編碼) 這里我們打開www.xs8xs.com源代碼查找 charset= 得到charset=gbk這個(gè)gbk就是我們需要的站點(diǎn)編碼
? ? 4.GetSiteUrl(站點(diǎn)地址)目標(biāo)站地址 寫入http://www.xs8xs.com
? ? 5.NovelSearchUrl(站點(diǎn)搜索地址) 這個(gè)搜索欄地址的獲得俊抵,按照每個(gè)網(wǎng)站程序的不同谁不,適當(dāng)?shù)男薷模ㄒ部梢院雎裕?/p>
? ? 6. NovelListUrl(站點(diǎn)最新列表地址) 目標(biāo)站點(diǎn)顯示更新的網(wǎng)址 例如 http://m.xs8xs.com/top/lastupdate_1/
? ? 7.NovelList_GetNovelKey(從最新列表中獲得小說編號(hào))在這個(gè)規(guī)則中我們要獲取小說名和小說編號(hào) 例如? 這個(gè)地址查看源文件,我們編寫這個(gè)規(guī)則的時(shí)候找到想要獲得的內(nèi)容所在的地方徽诲,比如我們打開地址看到想要獲得的內(nèi)容的第一本小說的名字是“遮天”我們?cè)谠次募锩嬲业健罢谔臁?/p>
例如:<h3><a >遮天</a></h3>
則該值為: <h3><a >.+?</a></h3>
8.NovelUrl(小說信息頁(yè)地址)這個(gè)很簡(jiǎn)單? 比如http://m.xs8xs.com/book/449/這本小說 我們可以看到的 我們改下 將里面的449 換成 {NovelKey} 一般情況表示小說編號(hào) 就是 http://m.xs8xs.com/book/449/{NovelKey}/
9.NovelErr(小說信息頁(yè)錯(cuò)誤識(shí)別標(biāo)記) 這個(gè)我們隨便輸入一個(gè)沒的小說的編號(hào)如http://www.xs8xs.com/0/7777777/這樣我們獲得的錯(cuò)誤標(biāo)記就是:對(duì)不起刹帕,該文章不存在!
10. NovelName(獲得小說名稱正則)我們隨便打開一本小說http://www.xs8xs.com/0/73/查看源代碼 獲得小說名稱 這個(gè)我們可以從固定模式著手 比如我們剛才打開的 遮天 這本小說 我們看到他的固定小說名格式是《遮天》 那我們?cè)谠创a里 找到《遮天》 這個(gè) 我們得到的內(nèi)容是
<div class="pic"><img src="/files/article/image/0/73/73s.jpg" width="185" height="245" /></div>
<div class="introduce">
<h1>只手遮天</h1>
<p class="bjt"></p>
<p class="bq"><span>更新:2019-08-20 07:26</span><span>作者:<a href="/modules/article/authorarticle.php?author=勝己">勝己</a></span><span>狀態(tài):連載</span><span>點(diǎn)擊:0</span></p>
設(shè)為該值:<h1>(.+?)</h1>
NovelAuthor(獲 得小說作者)
LagerSort(獲得小說大類)
SmallSort(獲得小說大類)
NovelIntro(獲得小說簡(jiǎn)介)
NovelKeyword(獲得小說主角(關(guān)鍵字))
NovelDegree(獲得寫作進(jìn)程)谎替、
NovelCover(獲得小說封面) 這些同 10. 一樣獲取即可
11.NovelInfo_GetNovelPubKey(獲得小說公眾目錄頁(yè)地址)這個(gè)的地址獲得跟上面的一樣的方法
http://m.xs8xs.com/book/73/
12.PubIndexUrl(公眾目錄頁(yè)地址) 這個(gè)我說明一下偷溺,這個(gè)的用法這個(gè)一般是在知道采集目標(biāo)站的動(dòng)態(tài)地址的時(shí)候用到,如果不知道對(duì)方動(dòng)態(tài)地址的話就在這個(gè)里面寫入{NovelPubKey} 如果知道動(dòng)態(tài)路徑比如說http://www.xs8xs.com這個(gè)站的沒本小說的章節(jié)目錄的動(dòng)態(tài)地址是那么 PubIndexUrl 這個(gè)的規(guī)則就是
http://www.xs8xs.com/modules/article/reader.php?aid={NovelPubKey}
PubVolumeSplit(分割分卷)這個(gè)分割分卷 有寫地方需要注意到 如果分割分卷的正則沒對(duì) 那么有可能 對(duì)于下面的 獲得章節(jié)名那些有很大的影響 這里 我們獲得 分割部分的代碼呢 按我的經(jīng)驗(yàn)?zāi)?是找到第一個(gè) 分卷 跟下面的分卷 查看他們的共同處 在我們分析這個(gè)目錄章節(jié)里面的源代碼 可以看出他們有個(gè)共同點(diǎn) 拿這一段來(lái)說明下
<dt>
<strong>遮天正文
</strong>
</dt>
單一代碼為 <dt>
<strong>? 修改正則 為<dt>\s*<strong>
其中的\s* 表示 匹配 與任何白字符匹配钱贯,包括空格挫掏、制表符、分頁(yè)符等 也就是說 在 </ul> 與<dt><strong> 之間 不管有多少個(gè)空格 都可以用 \s* 來(lái)表示
14.PubVolumeName(獲得分卷名) 想要獲得準(zhǔn)確的分卷名喷舀,必須在上面的分割部分的正則必須正確,一般情況下分割部分跟分卷名是在一塊的淋肾,上面我們說明分割部分用到的
<dt>
<strong>遮天正文
</strong>
</dt>
大家如果有注意看到的話 會(huì)發(fā)現(xiàn) 里面有 我們?cè)谶@一步里面要獲得的分卷名
我們 改下代碼 <dt>\s*<strong>(.+?)</strong>\s*</dt>
15. PubChapterName(獲得章節(jié)名)
這里我列出前面幾個(gè)章節(jié)的源碼
<div class="clearfix dirconone">
<ul>
<li class="chapter"><a title="2019-08-20 07:23更新硫麻,共5458字">第一章 斷臂重生</a></li>
<li class="chapter"><a title="2019-08-20 07:23更新,共3895字">第二章 左臂中的靈魂</a></li>
<li class="chapter"><a title="2019-08-20 07:23更新樊卓,共3893字">第三章 小人得志</a></li>
<li class="chapter"><a title="2019-08-20 07:23更新拿愧,共2793字">第四章 你敢不給試試!</a></li>
<li class="chapter"><a title="2019-08-20 07:23更新,共3277字">第五章 去那賺錢</a></li>
所以可以寫成這樣:
<li class="chapter"><a title=".+?">(.+?)</a></li>
16.PubChapter_GetChapterKey(獲得章節(jié)地址(章節(jié)編號(hào)))這里跟章節(jié)名的正則很類似
<li class="chapter"><a title=".+?">.+?</a></li>
17. PubContentUrl(章節(jié)內(nèi)容頁(yè)地址) 這里我拿http://www.xs8xs.com/0/73/25234.html這個(gè)來(lái)說明下該怎么用碌尔,其中的73 這個(gè)是小說編號(hào)這里我們用{NovelKey} 替代浇辜,25234這個(gè)就是在 PubChapter_GetChapterKey 里面獲得的 章節(jié)編號(hào)我們{ChapterKey} 替代
http://www.xs8xs.com/{NovelKey/1000}/{NovelKey}/{ChapterKey}.html
18. PubContentText(獲得章節(jié)內(nèi)容) 這個(gè)獲得方法我們就拿http://www.xs8xs.com/0/73/25235.html這個(gè)地址來(lái)說吧券敌,打開源代碼我們看到
<p class="articlecontent" id="articlecontent"> 第二章左臂中的靈魂<br />
<br />
媽的,不是被人當(dāng)做高科技試驗(yàn)品了柳洋,是靈異事件啊待诅,有鬼啊趙龍腦子嗡的一下,這個(gè)聲音粗獷中帶著一股威勢(shì)熊镣,桀驁不馴卑雁,天老大,他老二的霸氣绪囱,無(wú)邊的豪氣跟霸氣测蹲。<br />
<br />
................ ................ 中間省了............ ................ .................
完
</div>
直接改成 <p class="articlecontent" id="articlecontent">((.|\n)+?)</p>
((.|\n)+?)為我們要獲取的內(nèi)容.
19.PubContentImages(章節(jié)內(nèi)容中提取圖片正則) 章節(jié)中圖片可以直接用我們上面提到的萬(wàn)能圖片規(guī)則
<[^<]*((?<=<(?:img|IMG)[^>]*(?:(?:src|SRC)(?:\s*=\s*(?:["']?))))(?:[^\s"'>]*)\.(?:jpg|gif|jpeg|bmp|png|GIF|JPG))[^>]*>
20.出現(xiàn)空章節(jié)情況有可能是目標(biāo)站正好重啟網(wǎng)站或者你的采集IP被封等原因
如 果不是以上原因,請(qǐng)先檢查你采集的章節(jié)是否是圖片章節(jié)鬼吵,如果你的PubContentImages(章節(jié)內(nèi)容中提取圖片) 沒有獲得圖片章節(jié)內(nèi)容的話軟件 就會(huì)檢查你的采集文字內(nèi)容 PubContentText(獲得章節(jié)內(nèi)容)這個(gè)里面的正則的匹配扣甲,如果 PubContentImages(章節(jié)內(nèi)容中提 取圖片) 跟PubContentText(獲得章節(jié)內(nèi)容) 都沒有匹配的內(nèi)容,那么就出現(xiàn)了上面我們說的空章節(jié)的原因齿椅。
好好練練手琉挖,其他網(wǎng)站也是類似的寫法。
可以試試如下網(wǎng)站
https://www.xjdajuyuan.com/
https://www.wuluniu.com/
等等