我们这里使用的是baidumap的高精度IP定位API的接口,具体说明可以参考baidu提供的文档
使用前需要申请一个AK密钥类似于Kgcx......................xxl8w的样式
http://api.map.baidu.com/highacciploc/v1?qcip=220.xxx.xx.113&qterm=pc&ak=Kgcx......................xxl8w&coord=bd09ll&extensions=1
这是我的访问的URL,其中参数可以参考文档给出的定义
下图是访问到的网页
这里我主要写一个脚本,对抓到的html进行格式化
# -*- coding: utf-8 -*-
"""
Created on Wed Oct 12 12:40:24 2016 @author: Administrator
"""
import requests
import json URL = 'http://api.map.baidu.com/highacciploc/v1?qcip=110.xxxx.31.6&qterm=pc&ak=Kgcx0pNF6.....................xl8w&coord=bd09ll&extensions=1' def get_html(url):
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1581.2 Safari/537.36'}
text = requests.get(url,headers=headers).text
return text def formated_html(text):
jo = json.loads(text) #或者直接用eval函数将text转成dict
business = jo['content']['business']
for k,v in jo['content']['address_component'].items():
print k,':', v
print 'formatted_address',':',jo['content']['formatted_address']
print 'business',':',jo['content']['business']
print 'location',':',jo['content']['location'] if __name__ == '__main__':
text = get_html(URL)
formated_html(text)
下面是格式化后的结果:
但是官方给出了注意事项:成功率:综合定位成功率 65% ,精度:90% 误差 80m 以内;95% 误差 350m