您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么用python實現(xiàn)粉絲地域分布熱力圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用python實現(xiàn)粉絲地域分布熱力圖”吧!
我們第一步需要在網(wǎng)易云音樂網(wǎng)頁找到歌手的粉絲頁面:
通過這個網(wǎng)頁,我們可以獲取歌手的id
比如這里許嵩的id是31265745,我們只需要把代碼中歌手id替換成許嵩的id即可:
# 歌手idaid = '31265745'
運行代碼后,我們可以獲取粉絲的信息:
經(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'))
在粉絲信息提取的信息中,位置信息為城市編碼。
我們分三步走:
我們先將城市編碼轉(zhuǎn)換成中文的位置信息
然后通過百度API將中文位置轉(zhuǎn)換成經(jīng)緯度
根據(jù)每個地區(qū)的人數(shù)在地圖經(jīng)緯度上標(biāo)注熱力點
在第2步中,我們需要申請百度地圖的服務(wù)密鑰。
我的申請信息如下:
將申請到的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:
在定位地區(qū)的時候,有一個一直報錯,就是“淮北市”,于是我將它在字典里面刪除了:
loc_counts.pop('淮北市')
好了,經(jīng)過一段時間和代碼死懟,終于獲得熱力圖:
可以看出來許嵩的粉絲主要集中在安徽江蘇上海等地,另外廣東北京地區(qū)也非常之多。
放大一下看:
到此,相信大家對“怎么用python實現(xiàn)粉絲地域分布熱力圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(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)容。