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

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

——網友評論python

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

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

費話不說了,開工。json

獲取數據

打開網易雲音樂,找到歌曲春分十里不如你,打開開發者工具,分析頁面。 api

頁面內容
經過 搜索框 url 的 id 能夠定位到評論的 url 。看到請求是 post 方法的,咱們能夠看到下邊的兩個參數。

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

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

咱們就直接拿到這兩個參數去請求就行了。工具

# 獲取評論數據
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 格式的,那麼獲取就沒有什麼難度了。post

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 點擊可查看。

相關文章
相關標籤/搜索