網易雲音樂評論爬蟲

爬取網易雲音樂熱門評論
Requests庫
json庫

直接用requests.get()方法把網頁爬下來做成文本找不到我們要的熱評,說明它藏在其他文件中。目標就是把它找到。後面發現是網頁post一個data信息才能得到熱評。我們用requests.post()方法把data提交上去,就可以獲得我們要找的熱評了。

代碼:

import requests
import json


def get_url(url):

    number=url.split('=')[1] #切段,取第二個
    headers={"Referer": "https://music.163.com/song?id=4466775",
             "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"}

    #直接爬取音樂界面然後下載界面文檔找不到我們要的評論,說明熱評在網頁加載的另一個頁面
    #放慢網頁的加載速度不要緩存,一旦找到我們要的評論就停止網頁加載,打開審查元素在Network找到XHR或者DOC文檔看看有沒有我們要的熱評
    #這兩個參數是向網頁提交的信息,要提交信息才能獲取到評論文件。

    params= "QJU++Me16JeaiaCfF/Ks4zjCJ92PWQpNAO+kHmZIVZVk3EBpNjDE6ligmuDN7" \
            "D7cympdIuoFzoII0exm6+NS1zBFMTwmf+owCoZWGxd6fiS4/wJmiWbZZhSlqDEp" \
            "W6eXQ1nQvZcopQIRyIG9/5vLhm2LBaXtHb1u6MEXyag3gqmnBm59Jto7aALWCMZcVxLC"

    encSecKey="4714164e076f437b0418d119298" \
              "67f1a0ef2ccb28d2a430f6c0b5cbe466cc3dc8671e128d89" \
              "0f6f096570ee0b537ebf14a05cf95794f42f67864bb66cd5955201070b93c4260b5cc93ac" \
              "38819124f6a751f06ed3fce33c78538b9821b177c94db08f80bf7e1fdb5cd719080a" \
              "c15f2a2292ded49cf594b278cf7ba78867bcb659"
    #把剛纔網頁上的data的寫成字典形式
    data={"params":params,
         "encSecKey":encSecKey }

    #不要把網址寫死,不同歌曲對應的id不一樣
    target_url = "https://music.163.com/weapi/v1/resource/comments/R_SO_4_{}?csrf_token=".format(number)
    req = requests.post(target_url, headers=headers, data=data)

    return req


def main():
    url=input("請輸入歌曲網址:")
    content=get_url(url)
    comment_json= json.loads(content.text)#json.loads後返回的是字典
    result=comment_json['hotComments']

    with open("F:/爬蟲彙總/網易雲音樂熱評/hot_comments.txt", 'w', encoding='utf-8') as f:
        for each in result:
            f.write(each['user']['nickname']+'\n\n')
            f.write(each['content']+'\n')
            f.write('---------------------------\n')#write裏面的參數是字符串

if __name__=="__main__":
    main()
   

在這裏插入圖片描述
運行後,把歌曲對應網址輸入。運行成功後效果如下,打開文本
在這裏插入圖片描述
其他歌曲熱評只要打開對於歌曲頁面,把對應網址複製輸入就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章