個人部落格運營了一年,收集到陸陸續續的訪問者總數約12w個ip地址。突然手癢,想知道都是哪些地方來的訪問者,就用百度api和一些python的簡單處理,小半天完成了一簡單資料視覺化練手專案。
原始碼在 github中: https://github.com/luyishisi/IP_location_wordpress
本文講述從wordpress中記錄訪問者的ip,從資料庫中取出後使用python呼叫百度api完成ip轉換經緯資訊。再通過熱力圖呈現出來。
0.目錄
- ip採集外掛SlimStat
- 資料庫匯出json
- ip轉化經緯
- 百度IP定位api_字典解析
- 生成輸出json資訊
- 呼叫百度地圖api呈現熱力圖
1.ip採集外掛:SlimStat
想要實踐本專案需要大量ip資訊,則使用wordpress外掛SlimStat進行ip資訊採集.請在外掛專案中安裝並且使用上一天有一定資料後再繼續專案
2.資料庫匯出json
此部分會sql語句的可以直接進入mysql匯出,也可以使用phpmyadmin作為視覺化匯出
進入phpmyadmin後臺,選擇部落格的的資料庫
在這個表中,有所有訪問的ip記錄,進入後
修改上方的sql語句為:SELECT ip FROM wp_slim_stats
儲存為檔名 ip_add_all.json
3.ip轉化經緯
4.百度IP定位api_字典解析
5.生成輸出json資訊
以下程式碼解決上面三個問題(不知道為什麼程式碼沒有顯示出來,我用截圖吧)
這部分使用百度的api.如果想自己使用的話則需要申請一個帳號和應用,他會給你一個ak金鑰,加入到下面的程式碼中就可以自動完成ip–>經緯了
http://lbsyun.baidu.com/apiconsole/key 這裡可以找到百度api的資訊,在開放平臺裡.
python的程式碼則很簡單
完成轉化
呼叫百度地圖api呈現熱力圖
經過前面兩輪的操作,已經從資料庫得到ip_json,並且,使用百度ip定位api將ip轉化為經緯度座標,也寫成json檔案,現在的程式碼則是需要呼叫百度地圖api中的熱力圖呈現.
http://developer.baidu.com/map/jsdemo.htm#c1_15
這部分api可以在這裡找到
觀察發現:
修改裡面的point陣列,則可以將之前採集的點呈現上去,
好吧,這裡開始偷工減料了,之需要將之前json複製到這個point裡面,並且保持格式一致,則點選執行就可以直接看到專案的結果啦..
你可以下載下面我做的這個all.html檔案,然後點選在瀏覽器執行,就可以看到效果,不過這時候還是需要你手動把自己的加入進去.
最終熱力圖的樣子如下:
原創文章,轉載請註明: 轉載自URl-team
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!