日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫实战:爬取小姐姐最近的听歌曲目

發布時間:2024/1/8 python 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫实战:爬取小姐姐最近的听歌曲目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

作為網易云村的深度用戶,網易云音樂應該是我除了微信外打開時間最長的 App 了。并不是應為網易云上面的歌曲多,而是因為那些走心的評論。邊聽歌邊刷評論,感覺就像是走進了他人的人生之中,從另外一種意義來講也是讓自己有限的人生得以延長,變得更加多姿多彩。

直到有一天我像往常一樣劃拉著評論,一不小心手指觸碰到了某個用戶的昵稱,然后就去到了他的個人主頁。咦,原來這里是可以點進去的啊,在他的個人主頁我可以看到他的聽歌排行榜、創建的歌單以及收藏的歌單,而且我并沒有關注他。

此時的我突然靈機一動,豈不是可以用這個來查看小姐姐最近都在聽什么類型的歌,而且歌曲在一定程度上還反映了聽歌人的心情,真是一舉兩得呀。

PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取

點擊加群即可免費獲取Python學習資料

接口分析

首先我們進打開網易云網頁版,隨便選取一首歌后進入其評論列表,然后再選取一個評論者進入到他的個人主頁,不出意外的話就可以看到他最近的聽歌排行了。

?

來,我們觀察下 URL,它應該像是下面這個樣子的。為了保護用戶隱私我隱藏了最后四位數字。仔細看這 URL 我們猜測最后的參數應該是用戶的唯一 ID 標識,那么我們如何才能獲取到小姐姐的網易云 ID 呢。別急,下文會說。

https://music.163.com/#/user/home?id=4682****

接著按 F12 打開瀏覽器開發者調試窗口,刷新頁面分析下網絡請求。

?

?

嗯,就是這個接口了,返回的數據有 100 條記錄,我們可以點擊網頁「聽歌排行」右下角的「查看更多」來確認下,發現確實是只能查看最近的 100 首

?

獲取數據

接口獲取到了,剩下獲取數據的工作就不難了,直接寫一個爬蟲爬下來即可。

import?requests import?json#?模擬瀏覽器請求 headers?=?{'Referer':?'http://music.163.com/','Host':?'music.163.com','User-Agent':?'Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_15_0)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/83.0.4103.106?Safari/537.36','Accept':?'*/*', }#?構建?URL?以及?POST?參數 url?=?'https://music.163.com/weapi/v1/play/record?csrf_token=' data?=?{'params':?'xrJhjXYUqEWa98DVbFtw6yTygOTCOvSAypxfWNr5kpw/MEvXsRk+Av+DNF7zY9a1oA95FBTXdW9s/MJV+eQVfCGi+/NVW7nD0igfJSsmDtE3VpM422dZR6WJGDxS3/se00qFFHx6wumfLzc9mgnfB5hGkrBwF9+P/7zamjfWSOUfvvUuWhM2Gd7z2pA11lMB','encSecKey':?'2371bb4de91d5de7110722d3491c7cf6d3f6f5cdcbc16a5e9c7456e4b9075c1965d851d4920fa51adae6ff1c7b722539fb03dd2ab148894c2dc9c8ba0bbb5e95bbbd2bf4fbf02023cf63391f74b6956339cb72fa32a4413de347ffb536299f5711fe02fe60f66b77ac96a16a6bcb5ba14cf9b1609ddf8e8180d683bba5801acf' }#?發送?post?請求,第一個參數是?URL,第二個參數是請求參數 req?=?requests.post(url,?data)??print(json.loads(req.text))#?輸出結果 {"allData":[{"playCount":0,"score":100,"song":{"name":"盛夏光年?(2013版)","id":28181110,"pst":0,"t":0,"ar":[{"id":13193,"name":"五月天","tns":...

注意,因為我們最后要獲取的是歌手的名字。所以,需要將獲取到的數據結果格式化一下。

result?=?json.loads(req.text) names?=?[] for?i?in?range(100):names.append(result['allData'][i]['song']['ar'][0]['name'])#?準備生成云圖的字符串 text?=?",".join(names)

生成云圖

最后,將我們上面獲取到的歌手集合生成一張詞云圖即可。

import?matplotlib.pyplot?as?plt from?wordcloud?import?WordClouddef?show_word_cloud(text):wc?=?WordCloud(font_path='/System/Library/Fonts/PingFang.ttc',?background_color="white",?scale=2.5,contour_color="lightblue",?).generate(text)#?讀入背景圖片WordCloud(background_color='white',?scale=1.5).generate(text)plt.figure(figsize=(16,?9))plt.imshow(wc)plt.axis('off')plt.show()

?

最后,萬事俱備,就差小姐姐的網易云用戶 ID 了。其實很簡單,找一下她之前給你分享過的歌曲記錄就可以啦,微信打開歌曲鏈接,點擊右上角三個點,然后選擇「復制鏈接」,之后你會得到類似下面的一個鏈接。沒錯,那個 userid就是用戶唯一標識了。

https://y.music.163.com/m/song?id=4587****&userid=4682****&from=message

本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。

作者:派森醬

總結

以上是生活随笔為你收集整理的Python爬虫实战:爬取小姐姐最近的听歌曲目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。