摘要:下來后配置完成后執(zhí)行將替換成網(wǎng)易云音樂用戶的,等待結束后,表就能看到用戶的評論了。
需求來源
上周六的時候和一朋友聊天,聊到網(wǎng)易云系列產(chǎn)品,不知不覺就說到了網(wǎng)易云音樂,我說了些產(chǎn)品細節(jié)的問題,比如說,為什么在我不開通會員的情況下,網(wǎng)易云音樂不允許我紅心一個會員歌曲,沒有購買 沒有聽歌的權利這是正常,但連點擊喜歡的權利都沒有卻讓我很是郁悶,在后面,我為此功能特意下載蝦米音樂,發(fā)現(xiàn)蝦米卻是可以紅心收費歌曲的,他一臉吃瓜相的看著我說,這種細節(jié)功能你都計較啊,然后說出了他自己對網(wǎng)易云音樂的不滿,說到了為什么網(wǎng)易云音樂不能看自己或他人的個人評論,我看著他說,這功能哪有人用啊,再說,我要是真的想知道,我可以將這個人的評論爬出來的。這句話說完我就知道要出事情了,果不其然,我那朋友非要我?guī)退廊∠伦约旱膫€人評論,可是那一刻我在心里想,我怎么知道他評論了哪些歌呢?
然后在回去的路上,我一直在想這件事情,可以通過爬取這個人聽過的歌的所有評論,然后找到這個人的評論,然后一直就陷入了一個死循環(huán),我怎么獲取這個人聽過的歌曲呢,似乎是沒有辦法的。
思路轉(zhuǎn)換沒有辦法了,于是換了個思路去思考這個問題,為什么會評論一首歌曲呢,如果是我,我會怎么做,想了很久,我想只有自己比較喜歡的歌曲才會去評論的,于是想何不把這個人的喜歡的所有歌曲中的評論爬下來呢,索性擴大了范圍,將這個人的所有個人歌單的歌曲的評論爬下來,然后將屬于這個人的評論保存下來。
具體實踐思路想好了,就去做,首先肯定是分析接口,結果卻發(fā)現(xiàn)接口發(fā)生了變化,之前的接口是不進行加密的,現(xiàn)在的接口每次的請求都帶上了 encSecKey 和 params 參數(shù),顯然是加密了,于是在 Github 上發(fā)現(xiàn)了這個,網(wǎng)易云音樂新版WebAPI分析,是 Python 實現(xiàn)的,重要的部分是 aesEncrypt 和 rsaEncrypt 兩個加密的部分,完成這部分之后呢,后續(xù)工作就簡單的多了。
考慮到用戶歌單歌曲數(shù)量比較多的情況,在爬取歌曲評論的過程中,開啟多進程爬取是必要的,但又考慮到機器性能的原因,隊列執(zhí)行爬取功能也是必須的,不然機器可能在進程爆滿的情況效率各方面實在是堪憂啊。
為了考慮以后其它新功能的開發(fā),在此采用了 Laravel5.4 + PHP7.1 環(huán)境下的開發(fā),需要安裝php擴展bcmath, 一方面是 Laravel 開發(fā)的效率,另一方面 Laravel 在我提到的幾個問題上面都有相應的解決方案,數(shù)據(jù)的爬取則是采用了 Laravel 的 artisan 命令行,對于多進程則是采用了進程控制擴展 PCNTL,但同時這個多進程爬取的過程則是放到了 redis 驅(qū)動下的隊列中,同時使用了 Supervisor 進行隊列的監(jiān)控,整個代碼我已經(jīng)開放到 Github。
clone 下來后配置完成后執(zhí)行:
php artisan netease:playlist 123456
將123456替換成網(wǎng)易云音樂用戶的 id,等待結束后,表 user_comments 就能看到用戶的評論了。
具體操作可以查看 README.md 感興趣的同學可以試著玩一玩,如果不是開發(fā)人員,可以私信我來爬取后再發(fā)給你,后續(xù)我會開發(fā)出線上的功能供大家使用。
這里我只是提供了個思路,有需要請自行爬取,有問題可以聯(lián)系我。微信(w1113241948)
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/23236.html
摘要:行爬取頂點全網(wǎng)任意小說掘金之前連續(xù)多篇文章介紹客戶端爬取平臺,今天我們從零開始,實現(xiàn)爬取頂點小說網(wǎng)任意一本小說的功能。文件標記所有文件我的后端書架后端掘金我的后端書架月前本書架主要針對后端開發(fā)與架構。 30行js爬取頂點全網(wǎng)任意小說 - 掘金之前連續(xù)多篇文章介紹客戶端爬取平臺(dspider),今天我們從零開始,實現(xiàn)爬取頂點小說網(wǎng)任意一本小說的功能。 如果你還不知道客戶端爬取,可以先看...
摘要:行爬取頂點全網(wǎng)任意小說掘金之前連續(xù)多篇文章介紹客戶端爬取平臺,今天我們從零開始,實現(xiàn)爬取頂點小說網(wǎng)任意一本小說的功能。文件標記所有文件我的后端書架后端掘金我的后端書架月前本書架主要針對后端開發(fā)與架構。 30行js爬取頂點全網(wǎng)任意小說 - 掘金之前連續(xù)多篇文章介紹客戶端爬取平臺(dspider),今天我們從零開始,實現(xiàn)爬取頂點小說網(wǎng)任意一本小說的功能。 如果你還不知道客戶端爬取,可以先看...
摘要:通常這種加密都是通過加密的,所以首先要找到這個有加密算法的。追蹤函數(shù),發(fā)現(xiàn)它指向一個叫的函數(shù),仔細研究許久后大概知道加密算法經(jīng)兩次加密獲得,模式為,偏移量為。 前言 某寶評論區(qū)已經(jīng)成功爬取了,jd的也是差不多的方法,說實話也沒什么好玩的,我是看上它們分析簡單,又沒加密才拿來試手的。如果真的要看些有趣的評論的話,我會選擇網(wǎng)易云音樂,里面匯聚了哲學家,小說家,story-teller,皮皮...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:對于這次的爬蟲來說,由于網(wǎng)易云音樂以及音樂網(wǎng)頁中大部分元素都是使用渲染生成的,因此選擇使用來完成這次的腳本??梢园l(fā)現(xiàn)網(wǎng)易云音樂的手機版歌單地址是。現(xiàn)在已經(jīng)支持網(wǎng)易云音樂與音樂歌單的互相同步。 本文主要介紹selenium在爬蟲腳本的實際應用。適合剛接觸python,沒使用過selenium的童鞋。(如果你是老司機路過的話,幫忙點個star吧) 項目地址 https://github.c...
閱讀 1744·2023-04-25 19:37
閱讀 1319·2021-11-16 11:45
閱讀 2818·2021-10-18 13:30
閱讀 2778·2021-09-29 09:34
閱讀 1656·2019-08-30 15:55
閱讀 3123·2019-08-30 11:10
閱讀 1846·2019-08-29 16:52
閱讀 1007·2019-08-29 13:18