今天開始實現一下QQ音樂的下載功能 個人感覺難度較大於QQ音樂的搜尋功能 感覺打碼的時候思路有點點亂 所以決定寫篇部落格整理一下思路
一.先自我回顧一下實現QQ音樂搜尋功能的思路流程:
第一步:找到儲存著音樂詳細資訊的檔案的URL
第二步:訪問我們所找到的URL 得到響應體
第三步:解析響應體 獲取我們所需要的資料
反思:QQ音樂的搜尋功能的思路比較直觀清晰 主要難點在於解析資料這一環節 主要是用到了json格式的轉換 列表的返回 迴圈的使用 時間格式的轉換 這些知識點
二.再回顧一下到目前為止我所想到的實現QQ音樂下載功能的思路流程:
思路一:
第一步:找到音訊檔案(記憶體最靠譜的那個),得到他的URL(1),並觀察:我們發現,URL(1)中變數是vkey
要達到最終的下載目的,我們必須訪問音訊檔案的URL(1)
所以我們要找到一種可以自動尋找到任意一首歌的音訊檔案所對應的URL(1)
所以在哪裡找呢??
第二步:既然vkey是變數,那我們必須要找到儲存著vkey值的檔案啊
找到上述這個檔案之後,我們還要把他的URL(2)記錄下來
這樣,才能通過訪問他的URL(2),得到響應體,然後解析,得到我們所要的vkey
然後,我們再分析URL(2)分析並找到其中的變數,然後最後構造出通配表示式
思路二:
第一步:與思路一相同
第二步:同樣的,我們還是先找到儲存vkey值的檔案
但是此時我們多留個心眼 觀察一下訪問URL(2)所得到的響應體中的資料
我們發現,其中的某幾個資料拼湊在一起之後,竟然是音訊檔案的URL(1)
我們似乎只需要給URL(2)構造一個通配表示式就行了
總結比較一下思路一與思路二:其實在打這篇部落格之前我個人是認為思路二比思路一要簡單的 但那只是想象出來的結論 寫完這篇部落格 思路上清晰了許多 進入的一些誤區也走了出來 (看來寫寫部落格好處還是挺多的hhh) 但其實從操作流程上來看,他們有一個共性:就是都要構造一個URL(2)的通配表示式
而不同之處在於:在訪問URL(2)所得到的響應體中,思路一與思路二所要解析出的資料不同
(當然,到底哪個思路操作起來更加簡便,還得等操作之後方能下結論)
一些疑惑:
發現URL(2)是被轉碼了的 那看的 是真的難受 這麼難受的URL構造通配表示式的時候會不會很難啊(比如運用正則的時候) 到底要不要進行一波轉碼呢???
實時更新解答:的確要解碼哦!!一是URL(2)更加清晰直觀,二是運用正規表示式的時候更加簡便
解碼後發現還是好惡心啊這個URL(2)竟然還有URL專屬特殊字元(什麼鬼啊。。。)
所以要怎麼解決呢??
上網查!!!
然後手動更改,URL依舊可以使用!!!