日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

百度音乐下载地址解析

發布時間:2023/12/19 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 百度音乐下载地址解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

軟件初步介紹:

為什么我要干這檔子事情啊?

  一個字,懶,太懶,懶得自己去找,懶得沖會員去下載一些高品質歌,所以干脆寫個小東西來搞一搞吧。直接了當,干脆直接balbala一堆歌曲源下載地址,然后丟給迅雷去幫我下載,想想都是很爽的(全站歌曲下載我的電腦撐不住?。?。我也是很不情愿把錢交給程序猿啊,那就來解析解析吧。

命令行執行

  懶得去寫界面了,直接黑框框挺好看的(哈哈哈,linux用戶的一種?。?。那就直接用命令行處理所有操作吧。

支持功能

  0)繞開白金收費會員才能下載無損品質歌曲的限制;

1)繞開百度自身版權問題歌曲而無法下載的限制(即便白金收費會員從官方渠道也無該功能);

2)繞開非大陸之外區域無法下載的限制(即便白金收費會員從官方渠道也無該功能);

3)一鍵式全站歌曲下載(即便白金收費會員從官方渠道也無該功能);

4)繞開高頻訪問出現驗證碼的限制

軟件開發流程

大體流程:
開發流程:

  解析命令行:獲取一系列歌曲歌手專輯信息,判定用戶使用系統,建立所有數據保存路徑。
  模擬登陸:通過利用CURL和libcurl庫進行模擬登陸。(對百度網頁登陸源碼進行分析)調用libcurl獲得百度的BAIDUID的cookie,從而獲得cookie中的token;因為百度會有驗證碼,所以分析驗證碼源碼,獲取驗證碼進行輸入(只需要輸入驗證碼一次),得到BDUSS的cookie(實現免驗證登陸的關鍵);獲取完成之后重新編輯登陸源碼,(get/post)發送給百度的服務器實現登陸。只有只要利用BDUSS就能夠實現免驗證登陸了。由于下面頻繁的訪問百度音樂網頁,頻繁登陸會使百度敏感,所以后面解析下載地址的時候直接采用并行解析方式進行解析(利用線程容器實現)
  獲取歌手信息:對網頁源碼進行解析,得出所有歌手對應的超鏈接和歌手名稱,利用unorder_map進行存儲。
  獲取所有專輯信息:根據歌手的id去解析網頁源碼,找到對應的額專輯接口(這里比較難以處理),所以直接利用了json11庫進行網頁解析(解析json格式的網頁源碼),得出歌手對應的額專輯名稱和id,保存在map中。
  解析專輯中的所有歌曲信息:由于專輯列表中的歌曲比較多,如果我們高頻訪問單線程處理的話,百度會對這種操作敏感,所以這里我們采用thread容器進行處理每一張專輯;根據命令中的音質要求進行網頁源碼解析(歌曲信息都是json格式:采用json11進行解析),解析出每一種品質 --> 對應的三個屬性值(碼率,歌曲id,等),因為歌曲的下載地址都是一個統一的接口api再加上這三個屬性值,所以直接將api和每首歌的三個屬性值進行組合即可得到每一首歌的下載地址,保存到map中與歌曲名稱對應。輸出到txt中。
  libcurl庫的使用:采用easy interface(阻塞傳輸進行發送數據)模擬登陸。了解他的一些基本的使用方法和使用過程。

源碼:

  主要是采用一些c++11的新特性進行的開發。
  源碼:github

總結

以上是生活随笔為你收集整理的百度音乐下载地址解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。