漫畫追蹤器Tracker


1. 動機

      關注漫畫的人肯定會發現漫畫的更新時間差異非常大:有的一個星期更新一集,有的一個月更新一集,有的一季度更新一集。如果關注的是日本漫畫,並且不會日文,那么更新后的漫畫還要等待漢化組翻譯成中文才能看。這一等,少則幾小時,多則幾個星期。

     等得多了,就會產生這樣一種想法:如果漫畫更新后能通知我就好了。有的漫畫網站抓住了這種想法,增加了關注的漫畫更新后就發郵件通知的功能。但是,對於不經常查看郵箱的人來說,這種功能並沒有多大幫助。於是,就有了進一步的想法:如果關注的漫畫更新后,就立刻下載到我的電腦上,並且彈出提示框就好了

     根據這個想法形成的工具正是tracker。因而它的核心功能就是追蹤漫畫——當關注的漫畫更新時,立即下載到指定文件夾,並彈出對話框提示。

 

2. 關鍵功能實現

   實現tracker的追蹤功能的難點在於漫畫更新的判定,而下載功能的難點則是搞定漫畫網站的防盜鏈/防盜圖。以下以99漫畫網(http://www.99comic.com)為例說明這兩個功能是如何實現的。

2.1 判定漫畫更新

   在99漫畫網中,打開《火影忍者》可以得到如下頁面:

      從上圖可以得到一個猜測,漫畫集數都放在同一個div中(觀察該頁面的源代碼可以證明這個猜測是正確的)。既然如此,當漫畫更新了,新一集的名稱必然也是放在這個div中。根據這個特性,可以得到如下想法:記錄div的當前集數,並每隔一定時間訪問該頁面,如果發現div中集數增加了,就說明漫畫更新了。

       此外,如果仔細觀察頁面,會發現有一個漫畫更新時間(即圖中紅圈圈出部分)。既然是漫畫更新時間,那么當漫畫更新了,這個時間也應該更新。換句話說,只要記錄更新時間,並每隔一定時間判定更新時間是否改變,就能判斷漫畫是否更新。

      利用更新時間來判定是否更新在省功夫的同時,也意味着會缺失更多的信息——不清楚更新的是什么。此外,也不能確保漫畫更新的同時,更新的時間會馬上改變。基於以上考慮,最后實現時采用的想法是第一個想法,記錄div中的漫畫集數。

      以下是該想法實現的流程圖:

 

2.2 下載功能

      通常來說,如果知道一張圖片的URL地址,下載這張圖片是相當簡單的。但是99漫畫網出於防盜鏈/防盜圖的考慮,將URL地址隱藏了。所以難點就變成了找到圖片的URL地址。為了更好地分析圖片的URL地址是如何隱藏的,我使用了Paros來截取http請求以及回應。以下開始分析。

      點擊火影忍者570集(http://www.99comic.com/manhua/99168/list_90873.htm?s=9 ),在Paros中查找是哪一個請求得到圖片的。

      在顯示該漫畫圖片的網頁的源代碼中(圖3-5用紅色方框所圈出的那部分),可以找到圖3-3請求的URL的一部分。但是前面那部分URL卻沒辦法在源代碼中找到。也就是說,存放圖片服務器的URL被該漫畫網站用其它方法隱藏了。

      檢查打開漫畫圖片所在網頁時收到的全部回應后,在一個腳本的回應中找到了服務器的URL(圖3-6用紅圈圈出部分)。這個腳本請求的服務器URL是漫畫網站的名稱,而相對URL則可以在漫畫圖片所在網頁的源代碼中找到(圖3-5用紅圈圈出部分)。

      找到了隱藏服務器的URL,還有相對URL,分析是不是能結束了。不能!因為現在有一個疑點——在腳本的回應中(圖3-6),列出了很多服務器的URL。這意味着不同漫畫或者不同時候會使用不同的服務器。所以還要分析整個腳本,找到是如何選擇服務器的。不過,分析腳本的過程比較復雜,這里就直接給出分析結果:選擇哪一個服務器與漫畫所在頁面的URL有關系。

      總結以上過程,可以得到這樣的獲取方法:先請求漫畫圖片所在網頁的URL,在回應中提取圖片的相對URL,腳本的相對URL。然后利用漫畫網站名稱和腳本的相對URL,構造出完整的腳本URL,並請求該腳本。利用逆解析函數分析腳本回應,得出圖片的服務器URL。最后,將圖片的服務器URL與相對URL結合起來,並進行請求,就能得到圖片了。

 

3. 使用Tracker的追蹤功能

第一步,首先在搜索漫畫欄寫上自己要追蹤的漫畫名稱,然后按下回車鍵或者搜索按鈕。如果搜索結果沒有發現自己想要的漫畫,可嘗試更換來源網站

第二步,單擊想要追蹤的漫畫。PS:這時會出現漫畫的簡介與當前的集數。

第三步,點擊追蹤漫畫的按鈕,這時會彈出如下圖所示的一個對話框。

第四步,選擇一個保存用的文件夾。當漫畫更新時,就會將最新那集下載到這個文件夾中。

第五步:想要追蹤時,就開着這個軟件。當漫畫更新,會有以下提示:

PS:你可能會說577不是已經出了嗎?這是BUG嗎?不是,這是我為了演示,修改配置文件造成的

 

4. 下載

a. Tracker V1.1: http://115.com/file/c2k6ztfr#

b. JVM:http://java.com/en/download/inc/windows_upgrade_ie.jsp

PS:當無法打開Tracker時,才下載JVM

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM