比較喜歡落網的音樂,聽落網也有1年多了,不知道落網的園友點這里:http://www.luoo.net/
去年曾經寫過一篇文章解決落網音樂不能下載的問題:落網的音樂很好聽的,你造么?不能下載啊,怎么破?
時隔一年,落網早已改版,原來基於html分析音樂下載地址的代碼也已過時,平時工作過於繁忙,也沒有去維護那個工具。
今天工作依舊忙的一沓糊塗,來聽落網放松一下,發現726這個期刊的音樂甚是不錯,每一個音符組合在一起喚起了我疲憊的神經,心血來潮,覺定要把這期的音樂下載下來,這才想到之前做的下載工具已經不能用了。
忙里偷閑,把原來的代碼修改了一下,讓他適應了新版的html,說白了就是從html代碼中提取期刊信息,分析MP3的下載地址,好在落網沒有做的那么絕,很快代碼就改好了(最初的代碼是在一個晚上寫出來的,弄的比較挫,所以現在也是比較挫~),嗯,又可以愉快的下載音樂了。
酷酷的,是不是有種geek的感覺!
下載地址
這個工具是基於nodejs的,可以跨平台跑在不同的系統上,代碼已經開源到GitHub上了,有興趣的可以直接去clone一份:https://github.com/stanzhai/luoo-down
使用方法
- 先把代碼clone下來,前提是你已經安裝了git,沒有的話直接去github下載代碼的zip壓縮包吧,
git clone https://github.com/stanzhai/luoo-down.git
- 確保你已經安裝了nodejs,然后再代碼所在的目錄執行:
npm install
安裝所需的依賴包 - 同樣是在代碼所在的目錄執行
node app
就可以運行啦 - 在落網上找到你喜歡的期刊,把期刊號輸入進來,回車就可以獲取期刊信息,默認的期刊是726(這個期刊的音樂不錯,推薦給大家)
- 選擇你想下載的音樂,敲回車就可以下載了,對於已經下載的音樂,再次敲回車可以直接播放的(是不是很酷啊)
- 下載的音樂保存在downloads目錄中
實現原理
這次的實現和去年實現的原理上是一樣的,想了解實現的原理的園友可以看一下我去年寫的那篇文章:http://www.cnblogs.com/jasondan/p/luoo-down.html
這次不同的地方在於使用了cheerio去提取html中的數據,因為落網的這次改版使得提取信息不如以前那樣可以直接分析字符串那么方便了。
cheerio是nodejs的一個第三方模塊,可以認為是精簡版的服務端jquery,它實現了jquery的核心選擇器功能,可以非常方便的實現html數據的提取,用它開發web信息采集或者爬蟲真是太方便了:https://www.npmjs.com/package/cheerio
其他
關於信息采集,其實還可以通過分析落網的App找到期刊的api接口信息,不過成本會略高一些,曾反編譯過他的Andriod客戶端,發現接口部分的代碼已經混淆加密了,也在iPhone上設置http代理,捕獲過他的接口調用地址,發現還要傳token,懶得分析他的token生成規則了,就采用了這種直接分析他的html頁面的方式去實現了,缺點當然也很明顯,那就是落網一旦改版,這個工具又不能用了,哈哈,只能期待落網的程序猿們少折騰啦!
分析MP3的下載地址也是非常簡單的,使用chrome隨便打開一個期刊,調出調試工具,分析網絡請求,然后隨便播放一首音樂就能找到mp3的下載地址了,當然如果你不嫌麻煩的話,也可以直接從這個地址上下載音樂的,chrome真乃神器也!