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