基于百度IP定位的网站访问来源分析的 python 实战项目–实践笔记一–ip与经纬信息采集
源代码在: github 中 :
本文讲述使用python完成ip转换经纬信息.
此项目的的整体规划和项目进展在:
0.目录
ip采集插件SlimStat
数据库导出 json
ip转化经纬
百度IP定位api_字典解析
生成输出json信息
1.ip采集插件:SlimStat
想要实践本项目需要大量ip信息,则使用wordpress插件SlimStat进行ip信息采集.请在插件项目中安装并且使用上一天有一定数据后再继续项目
2.数据库导出json
此部分会sql语句的可以直接进入 mysql 导出,也可以使用 phpmyadmin 作为可视化导出
进入phpmyadmin后台,选择博客的的数据库
.
在这个表中,有所有访问的ip记录,进入后
修改上方的sql语句为
Oracle PL/SQL
12 | SELECTipFROM`wp_slim_stats` |
执行之后页面就将只检索出ip的信息,然后下方有导出按钮,点击后选择自定义为json格式,导出得到:
保存为文件名 ip_add_all.json
3.ip转化经纬
4.百度IP定位 api _字典解析
5.生成输出json信息
以下代码解决上面三个问题
这部分使用百度的api.如果想自己使用的话则需要申请一个帐号和应用,他会给你一个ak密钥,加入到下面的代码中就可以自动完成ip–>经纬了
这里可以找到百度api的信息,,在开放平台里.
python的代码则很简单
Python
123456789101112131415161718192021 | importurllib2importtimeIpList=open(“ip_add_all.json”,”r”).read()Ip=eval(IpList)flag=0 file =open(‘point.json’,’w’)foriinrange(20):#这里的数字要估算你的有多少数据ip=Ip[i][‘ip’]res=urllib2.urlopen(“”+ip+”&coor=bd09ll”)#这部分里ak的值最好换成你的,如果零时用可以先用我的a=res.read()zidian=eval(a)flag+=1if(zidian[‘status’]==0):printflag,iplng=zidian[‘content’][‘point’][‘x’]lat=zidian[‘content’][‘point’][‘y’]#print lat,lngstr_temp='{“lat”: ‘+lat+’, “lng”:’+lng+’},\n’file.write(str_temp)file. close () |
转化之后得到的是:
完成转化