溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用python實現(xiàn)粉絲地域分布熱力圖

發(fā)布時間:2021-12-27 13:34:55 來源:億速云 閱讀:202 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“怎么用python實現(xiàn)粉絲地域分布熱力圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用python實現(xiàn)粉絲地域分布熱力圖”吧! 

獲取粉絲信息        

我們第一步需要在網(wǎng)易云音樂網(wǎng)頁找到歌手的粉絲頁面:


怎么用python實現(xiàn)粉絲地域分布熱力圖

通過這個網(wǎng)頁,我們可以獲取歌手的id


比如這里許嵩的id是31265745,我們只需要把代碼中歌手id替換成許嵩的id即可:


# 歌手idaid = '31265745'
 


運行代碼后,我們可以獲取粉絲的信息:


怎么用python實現(xiàn)粉絲地域分布熱力圖


經(jīng)過一天一夜的爬蟲,獲得了四萬多個粉絲信息。


一共三個屬性信息,包括昵稱(nickname),位置(location),以及性別(gender)。我們只關(guān)注位置信息。


值得注意的是,Python3的編碼方式和Python2并不一樣,所以在原代碼的95行,97行,我們需要做一些改動:


cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))# 加密后得到的是bytes類型的數(shù)據(jù)encryptedbytes = cipher.encrypt(msg.encode('utf-8'))
 



制作地域熱力圖      


在粉絲信息提取的信息中,位置信息為城市編碼。


我們分三步走:


  1. 我們先將城市編碼轉(zhuǎn)換成中文的位置信息

  2. 然后通過百度API將中文位置轉(zhuǎn)換成經(jīng)緯度

  3. 根據(jù)每個地區(qū)的人數(shù)在地圖經(jīng)緯度上標(biāo)注熱力點


在第2步中,我們需要申請百度地圖的服務(wù)密鑰。




我的申請信息如下:


怎么用python實現(xiàn)粉絲地域分布熱力圖


將申請到的ak填入到原代碼的第75行即可。


還有一處代碼需要進(jìn)行改動,因為你如果在獲得ak后跑程序,會發(fā)生報錯:


{"status":240,"message":"APP 服務(wù)被禁用"}
 


由于服務(wù)升級,更新之后請求的URL體發(fā)生了改變:


# 舊:http://api.map.baidu.com/geocoder/v2/?location=34.35555,107.32518&output=json&ak=你的AK&pois=1# 新:http://api.map.baidu.com/reverse_geocoding/v3/?ak=你的AK&output=json&coordtype=wgs84ll&location=31.225696,121.49884
 


從這段代碼看,是版本從v2升級成了v3。如果你將代碼按照v3改過來,發(fā)現(xiàn)還是會報錯。


經(jīng)過我的仔細(xì)思考,發(fā)現(xiàn)新的版本將的是如果逆地理編碼,而我們需要的是“正”地理編碼,于是我嘗試將reverse_geocoding中的reverse去掉,沒想到竟然通過了!真是機(jī)智。


這部分代碼為(在原代碼72行開始):


url = "http://api.map.baidu.com/geocoding/v3/"output = 'json'# 密鑰需要到百度開發(fā)者平臺申請ak = 'bwLDdZXZNcrGCLVdsRPVESQv1GjtwOW8'addr = quote(address)uri = url + '?' + 'ak=' + ak  + '&output=' + output + '&address=' + addr
 


最后是繪制地圖,經(jīng)過多次嘗試后,之前申請的百度地圖服務(wù)應(yīng)用類別不是服務(wù)器,于是我又申請一個瀏覽器端的ak:


怎么用python實現(xiàn)粉絲地域分布熱力圖


在定位地區(qū)的時候,有一個一直報錯,就是“淮北市”,于是我將它在字典里面刪除了:


loc_counts.pop('淮北市')
 


最終效果圖      


好了,經(jīng)過一段時間和代碼死懟,終于獲得熱力圖:



怎么用python實現(xiàn)粉絲地域分布熱力圖


可以看出來許嵩的粉絲主要集中在安徽江蘇上海等地,另外廣東北京地區(qū)也非常之多。

放大一下看:

怎么用python實現(xiàn)粉絲地域分布熱力圖

到此,相信大家對“怎么用python實現(xiàn)粉絲地域分布熱力圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI