源代码在 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文件,然后点击在浏览器运行,就可以看到效果,不过这时候还是需要你手动把自己的加入进去.
最终热力图的样子如下:
转自: http://python.jobbole.com/86220/