python爬取《春風十里不如你》分析
阿新 • • 發佈:2018-12-02
人的一生要經歷太多的生離死別,那些突如其來的離別往往將人傷得措手不及。
人生何處不相逢,但有些轉身,真的就是一生,從此後會無期,永不相見。
用力愛過的人,講再見那一刻格外艱難。
世界上最遙遠的距離不是生離死別,而是對方已經雲淡風輕,你卻念念不忘。
——網友評論
一直很喜歡這首歌。正好學習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 點選可檢視。