1. 程式人生 > >python爬取《春風十里不如你》分析

python爬取《春風十里不如你》分析

人的一生要經歷太多的生離死別,那些突如其來的離別往往將人傷得措手不及。
人生何處不相逢,但有些轉身,真的就是一生,從此後會無期,永不相見。
用力愛過的人,講再見那一刻格外艱難。
世界上最遙遠的距離不是生離死別,而是對方已經雲淡風輕,你卻念念不忘。

——網友評論

一直很喜歡這首歌。正好學習python ,想著把這首歌的熱門評論爬下來,看看網友的故事。

網易雲音樂是一個有情懷的地方。大多數想說卻沒有辦法說出口的話都能留在評論裡。

費話不說了,開工。

獲取資料

開啟網易雲音樂,找到歌曲春分十里不如你,開啟開發者工具,分析頁面。
頁面內容
通過 搜尋框 url 的 id 可以定位到評論的 url 。看到請求是 post 方法的,我們可以看到下邊的兩個引數。

params: 12PSl54ZzScPr+B27R+RJ14gF4YwwNz8YqWdldaCKao1s1/JexmIcnpaQu7oAkXM96vPBpEo42vFSp3BydeeYs6TKv/72oKRITbhg8hUP2vwsNW+hq8VfDvmjcq+ceScl9wEb3Wh6Whnu85Th7jHK4lNNKxNSJakjxuVnNcCDteI76F2xviD4jDcz9upF8CY
encSecKey: 227faa18d4ac5f4dfa07b4f0664bcb181240fcfb74192d7ce86b19ce302c61c8a5f2cbf45fc8874b5d74f0f6320f7681eef36e3f3a4d8349eed908188aae9717dd64f4d678e1d15afb8f06b559ebd51b2bca7b225f274378d89c068e18f7f8d45f7019e6923c2a0da30a4b68ecdfe2d6dcb954c3cfb0ec8812da693944617678

至於這兩個引數怎麼破解,小弟確實不會,不過有知乎大神已經破解過了,想要了解的可以移步知乎獲取方法。

我們就直接拿到這兩個引數去請求就好了。

# 獲取評論資料
def get_data():
    url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_38576323?csrf_token='
    headers = {'Host': 'music.163.com',
               'Origin': 'https://music.163.com',
               'Referer': 'https://music.163.com/song?id=38576323'
, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } data = {'params': '12PSl54ZzScPr+B27R+RJ14gF4YwwNz8YqWdldaCKao1s1/JexmIcnpaQu7oAkXM96vPBpEo42vFSp3BydeeYs6TKv/72oKRITbhg8hUP2vwsNW+hq8VfDvmjcq+ceScl9wEb3Wh6Whnu85Th7jHK4lNNKxNSJakjxuVnNcCDteI76F2xviD4jDcz9upF8CY', 'encSecKey': '227faa18d4ac5f4dfa07b4f0664bcb181240fcfb74192d7ce86b19ce302c61c8a5f2cbf45fc8874b5d74f0f6320f7681eef36e3f3a4d8349eed908188aae9717dd64f4d678e1d15afb8f06b559ebd51b2bca7b225f274378d89c068e18f7f8d45f7019e6923c2a0da30a4b68ecdfe2d6dcb954c3cfb0ec8812da693944617678'} response = requests.post(url,headers=headers,data=data)

請求完發現數據是 json 格式的,那麼獲取就沒有什麼難度了。

    html = json.loads(response.text)
    result = []
    for item in html['hotComments']:
        content = {'user':item['user']['nickname'],
                  'likedCount':item['likedCount'],
                   'content':item['content']
                   }
        result.append(content)
    return result

視覺化操作

獲取資料之後,我們把資料做的直觀一點,便於檢視。

直方圖
看一下點贊首位的評論:

聽完這首歌,立刻定了下午五點的機票去北京找你。所以這次我用盡全力想對你說,你可不可以答應我,在我考上研究生到北京找你之前,你先不要結婚。不管我多麼不喜歡北京,可是北京有你。沒有你的杭州再美,也比不上有你的北京。

因為一個人愛上一座城。沒有你的城市再好的風景也淡然無味。

詞雲圖

結語

總有一天,會有一個人,看你寫過的所有狀態,讀完寫的所有微博,看你從小到大的所有照片,甚至去別的地方尋找關於你的資訊,試著聽你聽的歌,走你走過的地方,看你喜歡看的書,品嚐你總是大呼好吃的東西……只是想彌補上,他遲到的時光。

程式碼上傳到 github 點選可檢視。