關關採集規則

現在小說閱讀類網站如雨後春筍辦比比皆是,這中間就要說說小說類網站必備的工具“關關採集器”,免費版的很多,但是採集規則會寫的朋友就沒幾個了,在這裡簡單的教給大家關關採集規則如何編寫。

工具,操作步驟,注意事項,

工具

  • 關關採集器5.5 或者6.0
  • 目標站
  • 懂得一點HTML語言就更OK了

操作步驟

  1. 介紹一下關關采規則當中需要用到的一些標籤
    \d* 表示數字 \s* 表示空格+換行 .+? 表示字元(不能為空) .* 表示字元(可以為空)
    () 表示我們需要的部分 ((.|\n)*) 章節的內容部分,包括了換行。
    =====與傑奇後台標籤的對應關係=====
    !!!! 相當於 ([^><]*)
    ~~~~ 相當於 ([^><'"]*)
    ^^^^ 相當於 ([^><\d]*)
    $$$$ 相當於 ([\d]*)
    **** 相當於 (.*)
  2. 現在開始編寫規則,假設目標站為小說書庫
    首先我們需要複製一份原有的規則做模版(規則檔案存放在Rules目錄下)。把複製的那份做模板的規則命名為xssk.xml 或小說書庫.xml,這個主要是便於規則管理。
  3. 運行採集器里的規則管理工具,打開後載入剛剛我們命名為xssk.xml 或小說書庫.xml的檔案。
  4. 現在可以正式的編寫規則了,我們寫規則時要找的標誌性代碼必需是整個頁面里唯一的代碼,其次我們取用的部份代碼超精簡超好。
    1. GetSiteName(站點名稱) 這裡我們寫小說書庫(在執行任務時會在上方顯示)
    2. GetSiteCharset(站點編碼) 這裡我們打開小說書庫原始碼查找 charset= 得到charset=gbk這個gbk就是我們需要的站點編碼
    3. GetSiteUrl(站點地址) 這個就不用我說了吧
    4. NovelListUrl(站點最新列表地址) 因為這些每個站點的不同,這個就需要自己去找了小說書庫的是/modules/article/toplist.php?sort=lastupdate
    5. NovelList_GetNovelKey(從最新列表中獲得小說編號) 此規則中需要同時獲得書名,獲得書名是在手動模式的時候用到,如果你要用手動模式那么必須獲得書名,否則手動模式將會無法使用。我們 打開/modules/article/toplist.php?sort=lastupdate 這個地址查看源檔案,我們編寫這個規則的時候找到想要獲得的內容所在的地方,比如我們打開地址看到想要獲得的內容的第一本小說的名字是“從零開始”我們在源檔案裡面找到“從零開始”複製代碼我們編寫規則用到的代碼其實也不是很多,編寫規則的原則是能省則省,也就是說代碼越短越好除非萬不得已一般精短一些比較好。好了不廢話了,在這個規則裡面我們需要用到的是<td class="L"><a href="/modules/article/articleinfo.php?id=1959">從零開始</a></td>
    複製代碼我們將這段改下<td class="L"><a href="/modules/article/articleinfo.php?id=(\d*)">(.+?)</a></td>
    複製代碼其中 (\d*) 表示編號 (.+?) 表示小說名 .+?表示代替此位置字元,經過測試正確
    6. NovelUrl(小說信息頁地址) 這個很容易,我們隨便點開一本小說就能知道了,比如說/modules/article/articleinfo.php?id=1959這本小說,我們可以看到的我們改下將裡面的1959換成 {NovelKey} 一般情況表示小說編號/modules/article/articleinfo.php?id={NovelKey}
    7. NovelName(獲得小說名稱正則) 我們還打開剛才那本書/modules/article/articleinfo.php?id=1959查看原始碼,獲得小說名稱那我們在原始碼里查找到“從零開始”,需要得到前後代碼為唯一的位置,一般小說站的名稱都在H1或者H2標籤里,這個我們得到的內容是
    <h1>從零開始 全文閱讀</h1>
    複製代碼這一段 我們改下
    <h1>(.+?) 全文閱讀</h1>
    下面的 NovelAuthor(獲得小說作者)、LagerSort(獲得小說大類)、SmallSort(獲得小說大類)、NovelIntro(獲得小說簡介)、NovelKeyword(獲得小說主角(關鍵字))、NovelDegree(獲得寫作進程)、NovelCover(獲得小說封面)這些呢我就不演示了,這些跟上面的那個獲得小說名方法是一樣的,也就所謂的一通百通。需要說到的是獲得簡介的時候最好用 ((.|\n)*)來代替,因為中間可能包含換行。
    8. NovelInfo_GetNovelPubKey(獲得小說公眾目錄頁地址)很多站目錄頁的地址有子ID在前邊,所以我們要採集目錄頁的地址我們獲得代碼如下:
    <a class="read" href="/1959.html" title="從零開始全文閱讀">全文閱讀</a> 複製代碼這一段 我們改下<a class="read" href="/(.+?)" title=".+?">全文閱讀</a>
    9. PubIndexUrl(公眾目錄頁地址) 這個裡面寫入{NovelPubKey}
    10. PubVolumeSplit(分割分卷) 這個分割分卷 有寫地方需要注意到 如果分割分卷的正則沒對 那么有可能 對於下面的 獲得章節名那些有很大的影響 這裡 我們獲得 分割部分的代碼呢 按我的經驗呢 是找到第一個 分卷 跟下面的分卷 查看他們的共同處 在我們分析/1959.html 這個目錄章節裡面的原始碼 可以看出分卷的代碼為H2標籤,因此分割分卷就填寫<h2>
    11 . PubVolumeName(獲得分卷名) 上面我們說明分割部分用到<h2>因此分卷名為
    <h2>(.+?)</h2>
    12. PubChapterName(獲得章節名) 這個我們拿一段來說明
    <li style="width:24%;"><div class="novel_num"></div><a href="481855.html" title="一章 時間方恨少">一章 時間方恨少</a></li>
    複製代碼如果有碰到時間、日期、更新字數什麼的我們直接忽略,因為這些不是我們要獲得的內容,這個我們可以用 .+? 來表示。 好了我們吧上面的那一段改下改成表達式
    <li style="width:24%;"><div class="novel_num"></div><a href="\d*.html" title=".+?">(.+?)</a></li>
    複製代碼正常獲得內容。(如果不是單行的話我們用\s* 來表示N個換行符)
    13. PubChapter_GetChapterKey(獲得章節地址(章節編號)) 這裡說明下 這個裡面的章節編號是在下面的 PubContentUrl(章節內容頁地址)用到,那么這裡我們需要獲得的是章節地址分析得到
    <li style="width:24%;"><div class="novel_num"></div><a href="(\d*).html" title=".+?">.+?</a></li>
    這裡既然是獲得章節地址那為什麼我們還有用到章節名的呢?這個說下主要就是為了避免獲得的章節名跟獲得的章節地址不匹配。
    如果是章節頁是亂序的這裡就要獲得章節編號了(強烈見意用戶用獲得章節編號)
    14. PubContentUrl(章節內容頁地址) 這裡拿/1959/432738.html 這個來說明下該怎么用,其中/1959/432738這個是前邊獲得的目錄地址我們用{NovelPubKey}替代,1693778這個就是在 PubChapter_GetChapterKey 裡面獲得的 章節編號我們{ChapterKey} 替代,填入{NovelPubKey}{ChapterKey} .html
    15. PubContentText(獲得章節內容) 這個獲得方法我們就拿/1959/432738.html這個地址來說吧,打開原始碼在內容上下我們看到
    複製代碼這裡我就直接改成正規的內容獲得代碼如下
    <dd id="contents">((.|\n)+?)</dd>
    複製代碼這裡說明下((.|\n)+?)為我們要獲取的內容,<dd id="contents">這個必需要是唯一的。
    16. PubContentImages(章節內容中提取圖片正則) 章節中圖片也就是我們所說的圖片章節,這裡我們可以用萬能圖片規則
    <[^<]*((?<=<(?:img|IMG)[^>]*(?:(?:src|SRC)(?:\s*=\s*(?:["']?))))(?:[^\s"'>]*)\.(?:jpg|gif|jpeg|bmp|png|GIF|JPG))[^>]*>
    現在說下替換,每行一個替換,格式如下需要替換的內容♂替換結果
    <div.+?>
    複製代碼這個表示過濾
    <div.+?>♂<br>
    複製代碼這個表示替換現在的站長們都會在小說章節內容上加入自己的廣告
    如(**站第一時間更新vip章節)、(**站首發)等廣告我們可以用
    **站第一時間更新vip章節♂替換的內容
    **站首發♂替換的內容
    複製代碼其他的替換類似
    出現空章節情況有可能是目標站正好重啟網站或者你的採集IP被封等原因
    如果不是以上原因,請先檢查你採集的章節是否是圖片章節,如果你的PubContentImages(章節內容中提取圖片) 沒有獲得圖片章節內容的話軟體就會檢查你的採集文字內容 PubContentText(獲得章節內容)這個裡面的正則的匹配,如果 PubContentImages(章節內容中提取圖片) 跟PubContentText(獲得章節內容) 都沒有匹配的內容,那么就出現了上面我們說的空章節的原因。

注意事項

  • 現有採集器中6.0的好像采不了圖片,5.5的沒問題。
  • 在規則編寫中,可能每個站的代碼都不相同,靈活運用各種標籤來達到替換作用

相關詞條

熱門詞條

聯絡我們