RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

抓取網(wǎng)易云音樂(lè)熱歌榜里的熱評(píng)的爬蟲

馬哥Linux運(yùn)維 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-09-03 11:39 ? 次閱讀

前一段時(shí)間剛剛?cè)腴Tpython爬蟲,有大概半個(gè)月時(shí)間沒(méi)有寫python了,都快遺忘了。于是準(zhǔn)備寫個(gè)簡(jiǎn)單的爬蟲練練手,我覺(jué)得網(wǎng)易云音樂(lè)最優(yōu)特色的就是其精準(zhǔn)的歌曲推薦和獨(dú)具特色的用戶評(píng)論,于是寫了這個(gè)抓取網(wǎng)易云音樂(lè)熱歌榜里的熱評(píng)的爬蟲。我也是剛剛?cè)腴T爬蟲,有什么意見(jiàn)和問(wèn)題歡迎提出,大家一起共同進(jìn)步。

廢話就不多說(shuō)了~

我們的目標(biāo)是爬取網(wǎng)易云中的熱歌排行榜中所有歌曲的熱門評(píng)論。

這樣既可以減少我們需要爬取的工作量,又可以保存到高質(zhì)量的評(píng)論。

首先,我們打開網(wǎng)易云網(wǎng)頁(yè)版,如圖:

點(diǎn)擊排行榜,然后點(diǎn)擊左側(cè)云音樂(lè)熱歌榜,如圖:

我們先隨便打開一個(gè)歌曲,找到如何抓取指定的歌曲的熱門歌評(píng)的方法,如圖,我選了一個(gè)最近我比較喜歡的歌曲為例:

進(jìn)去后我們會(huì)看到歌評(píng)就在這個(gè)頁(yè)面的下面,接下來(lái)我們就要想辦法獲取這些評(píng)論。

接下來(lái)打開web控制臺(tái)(chrom的話打開開發(fā)者工具,如果是其他瀏覽器應(yīng)該也是類似),chrom下按F12,如圖:

選則Network,然后我們按F5刷新一下,刷新之后得到的數(shù)據(jù)如下圖所示:

可以看到瀏覽器發(fā)送了非常多的信息,那么哪一個(gè)才是我們想要的呢?這里我們可以通過(guò)狀態(tài)碼做一個(gè)初步的判斷,status code(狀態(tài)碼)標(biāo)志了服務(wù)器請(qǐng)求的狀態(tài),這里狀態(tài)碼為200即表示請(qǐng)求正常,而304則表示不正常(狀態(tài)碼種類非常多,如果要想詳細(xì)了解可以自行搜索,這里不說(shuō)304具體的含義了)。所以我們一般只用看狀態(tài)碼為200的請(qǐng)求就可以了,還有就是,我們可以通過(guò)右邊欄的預(yù)覽來(lái)粗略觀察服務(wù)器返回了什么信息(或者查看響應(yīng))。通過(guò)這兩種方法結(jié)合一般我們就可以快速找到我們想要分析的請(qǐng)求。通過(guò)反復(fù)的查找,終于找到了含有歌評(píng)的請(qǐng)求,如圖:

可能截圖在CSDN上不是很清楚,我們?cè)谝粋€(gè)Name為R_SO_4_489998494?csrf_token=的POST請(qǐng)求中找到了包含這首歌的歌評(píng)。我們把這個(gè)分塊截圖發(fā)出來(lái),這樣可以看的清楚一些:

請(qǐng)求基本信息:

請(qǐng)求頭部:

請(qǐng)求中的表單數(shù)據(jù):

我們可以看到,包含這首歌歌評(píng)的請(qǐng)求url為http://music.163.com/weapi/v1/resource/comments/R_SO_4_489998494?csrf_token=,我們換了幾首歌后發(fā)現(xiàn),這個(gè)請(qǐng)求的前部分都是一樣的,只是R_SO_4_后面緊跟的一串?dāng)?shù)字不一樣。我們可以推測(cè)出,每一首歌都有一個(gè)指定的id,R_SO_4_后面緊跟的就是這首歌的id。

我們?cè)倏匆幌绿峤坏谋韱螖?shù)據(jù),我們會(huì)發(fā)現(xiàn)表單中需要填兩個(gè)數(shù)據(jù),名稱為params和encSecKey。后面緊跟的是一大串字符,換幾首歌會(huì)發(fā)現(xiàn),每首歌的params和encSecKey都是不一樣的,因此,這兩個(gè)數(shù)據(jù)可能經(jīng)過(guò)一個(gè)特定的算法進(jìn)行加密過(guò)的。

服務(wù)器返回的和評(píng)論相關(guān)的數(shù)據(jù)為json格式的,里面含有非常豐富的信息(比如有關(guān)評(píng)論者的信息,評(píng)論日期,點(diǎn)贊數(shù),評(píng)論內(nèi)容等等),其中hotComments就是我們要找的熱門評(píng)論,總共15條,如圖所示:

至此,我們已經(jīng)確定了方向了,即只需要確定params和encSecKey這兩個(gè)參數(shù)值即可。但是這兩個(gè)參數(shù)是經(jīng)過(guò)特定的算法進(jìn)行加密的,怎么辦呢?我發(fā)現(xiàn)了一個(gè)規(guī)律,http://music.163.com/weapi/v1/resource/comments/R_SO_4_489998494?csrf_token=中 R_SO_4_后面的數(shù)字就是這首歌的id值,而對(duì)于不同的歌曲的param和encSecKey值,如果把一首歌比如A的這兩個(gè)參數(shù)值傳給B這首歌,那么對(duì)于相同的頁(yè)數(shù),這種參數(shù)是通用的,即A的第一頁(yè)的兩個(gè)參數(shù)值傳給其他任何一首歌的兩個(gè)參數(shù),都可以獲得相應(yīng)歌曲的第一頁(yè)的評(píng)論,對(duì)于第二頁(yè),第三頁(yè)等也是類似。

而我們其實(shí)只需要獲取第一頁(yè)的15條熱門評(píng)論,所以我們只需要隨便找一首歌,將這首歌第一頁(yè)中的該請(qǐng)求中的params和encSecKey這兩個(gè)參數(shù)值復(fù)制下來(lái),就可以使用了。

關(guān)于這兩個(gè)參數(shù)如何解密,強(qiáng)大的知乎上其實(shí)已經(jīng)有答案的了,感興趣的朋友可以進(jìn)去看一下(https://www.zhihu.com/question/36081767),我們?cè)谶@里就只需要用我們這種偷懶的辦法就可以完成需求了,xixi。

到此為止,我們?nèi)绾巫ト【W(wǎng)易云音樂(lè)的熱門評(píng)論已經(jīng)分析完了,我們?cè)俜治鲆幌氯绾潍@取云音樂(lè)熱歌榜中所有歌曲的信息。

我們需要獲取云音樂(lè)熱歌榜中的所有歌曲的歌曲名和對(duì)應(yīng)的id值。

跟上面的分析步驟類似,我們先進(jìn)入熱歌榜的網(wǎng)址,如圖:

按F12,進(jìn)入WEB工作臺(tái),如圖:

我們?cè)谝粋€(gè)名為toplist?id=3778678的GET請(qǐng)求中,找到了該榜單的所有歌曲信息。

請(qǐng)求對(duì)應(yīng)的信息如圖:

我們預(yù)覽一下該請(qǐng)求返回的結(jié)果,如圖:

我們?cè)诖a的第524行我們找到了包含歌曲信息的代碼,如圖:

因此,我們只需要將該請(qǐng)求的代碼中,將包含信息的代碼篩選出來(lái)。

我們?cè)谶@里使用正則表達(dá)式進(jìn)行數(shù)據(jù)篩選。

通過(guò)觀察特點(diǎn),我們可以通過(guò)兩次正則表達(dá)式的篩選,將我們需要的歌曲信息提取出來(lái)。

第一次正則表達(dá)式我們將該請(qǐng)求返回的所有代碼中,提取出第525行代碼。

第一次正則表達(dá)式如下:

第二次正則表達(dá)式我們將該第524行中我們需要的歌曲信息提取出來(lái),我們需要歌曲的歌名和id,對(duì)應(yīng)的正則表達(dá)式如下:

獲取歌名:

  • (.*?)
  • 獲取歌曲的id:

  • .*?
  • 到此,我們整個(gè)過(guò)程已經(jīng)分析完了,上代碼看具體細(xì)節(jié)~~

    代碼如下:

    代碼運(yùn)行結(jié)果如下:

    對(duì)比一下網(wǎng)頁(yè)上《如果我愛(ài)你》這首歌的歌評(píng)和我們保存下的歌評(píng):

    聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
    • python
      +關(guān)注

      關(guān)注

      56

      文章

      4792

      瀏覽量

      84627
    • 爬蟲
      +關(guān)注

      關(guān)注

      0

      文章

      82

      瀏覽量

      6867

    原文標(biāo)題:Python3爬蟲抓取網(wǎng)易云音樂(lè)熱評(píng)實(shí)戰(zhàn)

    文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

    收藏 人收藏

      評(píng)論

      相關(guān)推薦

      【NanoPi Duo開發(fā)板試用體驗(yàn)】3、安裝并運(yùn)行網(wǎng)易音樂(lè)

      本帖最后由 jackeyt 于 2017-11-6 09:48 編輯 我們知道在手機(jī)或者電腦上想要安裝網(wǎng)易音樂(lè)類的音樂(lè)APP,是十分容易的事情來(lái)的,我們只要在軟件商店中選擇相應(yīng)
      發(fā)表于 11-05 20:27

      網(wǎng)易首款智能音箱“三音”上線京東眾籌

        導(dǎo)讀:日前,網(wǎng)易在京東金融平臺(tái)發(fā)起“共創(chuàng)”活動(dòng),發(fā)動(dòng)音樂(lè)愛(ài)好者共同打造其首款產(chǎn)品“網(wǎng)易三音音箱”。   7月23日9點(diǎn),“網(wǎng)易三音
      發(fā)表于 07-28 09:29

      網(wǎng)易首款智能音箱“三音音箱”發(fā)布 京東眾籌價(jià)799元

      優(yōu)化和升級(jí)硬件、精準(zhǔn)定制產(chǎn)品。   從功能和產(chǎn)品性能來(lái)看,該音箱于市面上其他智能音箱基本類似。較為獨(dú)特的優(yōu)勢(shì)則是關(guān)聯(lián)網(wǎng)易音樂(lè)。據(jù)銷售頁(yè)面提供的信息顯示,該音箱使用的是網(wǎng)易
      發(fā)表于 07-28 09:30

      Python爬蟲網(wǎng)易音樂(lè)下載

      …好了,不說(shuō)廢話了。這次的目標(biāo)主要是根據(jù)網(wǎng)易云中歌手的ID,下載該歌手的熱門音樂(lè)的歌詞和音頻,并保存到本地的文件夾中。配置基礎(chǔ)PythonSelenium(配置方法參照:Selenium配置)Chrome
      發(fā)表于 10-12 15:11

      Linux下如何安裝網(wǎng)易音樂(lè)

      1. 百度搜索網(wǎng)易音樂(lè),打開網(wǎng)易音樂(lè)的官網(wǎng)
      發(fā)表于 07-22 08:22

      應(yīng)對(duì)反爬蟲的策略

      正常訪問(wèn)的目的,但是編寫爬蟲程序是很難得,尤其是根據(jù)實(shí)際情況調(diào)整程序代碼,所以除了自己編寫爬蟲程序,現(xiàn)在為了能讓大家更好的爬蟲抓取信息,有很多專業(yè)的采集器和軟件被研發(fā)出來(lái),像億牛
      發(fā)表于 12-12 17:39

      小米手環(huán)隔空喊話網(wǎng)易音樂(lè): 敢和我合作嗎?

      臨近小米新品發(fā)布會(huì),近日小米手環(huán)官方微博表示有粉絲想要網(wǎng)易音樂(lè)定制版手環(huán),并向網(wǎng)易音樂(lè)隔空喊
      發(fā)表于 04-19 08:57 ?1814次閱讀

      小米手環(huán)2的按扭和網(wǎng)易音樂(lè)的按扭一致,這是要合作嗎?

      今日,小米手環(huán)官方微博發(fā)話了,隔空喊話網(wǎng)易音樂(lè),都知道網(wǎng)易音樂(lè)不知不覺(jué)間就火了,用戶量已增至
      發(fā)表于 04-24 09:01 ?3392次閱讀

      網(wǎng)易音樂(lè)氧氣耳機(jī)評(píng)測(cè):129的價(jià)格到底貴在哪里?

      還是從大家喜聞樂(lè)見(jiàn)的開箱環(huán)節(jié)說(shuō)起。網(wǎng)易音樂(lè)氧氣耳機(jī)的外包裝盒給人的第一印象是非常簡(jiǎn)約,由于它將網(wǎng)易
      的頭像 發(fā)表于 05-02 06:52 ?6.1w次閱讀

      網(wǎng)易音樂(lè)獲阿里巴巴、鋒基金等共計(jì)7億美元融資

      9月6日消息,網(wǎng)易公司目前宣布,網(wǎng)易音樂(lè)獲阿里巴巴、鋒基金等共計(jì)7億美元融資。據(jù)悉,此次融資為網(wǎng)易
      的頭像 發(fā)表于 09-06 08:37 ?2900次閱讀

      知名智能穿戴廠商華米科技正式宣布與網(wǎng)易音樂(lè)達(dá)成合作

      9月16日,知名智能穿戴廠商華米科技正式宣布與網(wǎng)易音樂(lè)達(dá)成合作。根據(jù)雙方發(fā)布的合作內(nèi)容顯示,9月22日網(wǎng)易
      的頭像 發(fā)表于 09-16 14:45 ?2029次閱讀

      網(wǎng)易音樂(lè)指控酷狗抄襲

      網(wǎng)易音樂(lè)官方微博喊話酷狗音樂(lè),表示為一直戰(zhàn)斗在死盯網(wǎng)易
      的頭像 發(fā)表于 02-02 11:58 ?1800次閱讀

      網(wǎng)易音樂(lè)再度回應(yīng)酷狗:偷梁換柱

      本周網(wǎng)易音樂(lè)與酷狗音樂(lè)之間的爭(zhēng)論成為業(yè)界關(guān)注的焦點(diǎn)。
      的頭像 發(fā)表于 02-04 15:44 ?2512次閱讀

      版權(quán)壟斷陰影下沖擊上市,為何網(wǎng)易音樂(lè)仍被市場(chǎng)看好?

      網(wǎng)易音樂(lè)又整了新活,其所推出的“色彩聲學(xué)研究室”刷屏社交網(wǎng)絡(luò),許多人的朋友圈都被#網(wǎng)易人格主導(dǎo)色#占據(jù)。就在
      發(fā)表于 05-31 14:17 ?203次閱讀

      如何利用海外爬蟲IP進(jìn)行數(shù)據(jù)抓取

      利用海外爬蟲IP進(jìn)行數(shù)據(jù)抓取需要綜合考慮多個(gè)方面。
      的頭像 發(fā)表于 10-12 07:54 ?182次閱讀
      RM新时代网站-首页