python实现百度地图API获取某地址的经纬度

综合编程 2018-01-27

申请百度API

1、打开网页 http://lbsyun.baidu.com/index.php?title=首页

选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号及邮箱认证。

激活后可看到后台页面,现在可以开始创建应用了,这里请求校验方式有两种,一种是白名单IP,另一种是SN校验(旁边有计算的说明),我选择SN校验:

成功后会获得自己的AK和SK,接下来说明如何计算sn

计算SN(python3.x)

from urllib import parse
import hashlib

def get_urt(addtress):

    # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak
    queryStr = '/geocoder/v2/?address=%s&output=json&ak=你的ak' % addtress

    # 对queryStr进行转码,safe内的保留字符不转换
    encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")

    # 在最后直接追加上yoursk
    rawStr = encodedStr + '你的sk'

    #计算sn
    sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())
    
    #由于URL里面含有中文,所以需要用parse.quote进行处理,然后返回最终可调用的url
    url = parse.quote("http://api.map.baidu.com"+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")   
    
    return url

该url可直接进行进行访问,返回的是json格式,如下

{"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地产小区"}}

您可能感兴趣的

面向开发者,「奇点机智」推出不用第三方API即可操作手机应用的智能手机助手... 当今的智能语音系统格局还是由硅谷三巨头三分天下,分别是苹果的Siri、微软的Cortana,和谷歌的Google Now。不过国外的语音助手由于系统或是网络服务问题,使得部分中国用户不能使用,也因此造就了天朝中文语音助手的蓬勃发展。比如科大讯飞和国内众多手机厂商联合推出的智能语音助手,以及腾讯在微信...
Python Top 10 Open Source Projects (v.Feb 2018) Python Top 10 Open Source Projects (v.Feb 2018) This is a new monthly series For the past month , we ran...
Running Python Script from PHP as www-data The problem Python script invoked from PHP via shell_exec and runs fine when PHP invoked from command line but fails when PHP triggered by br...
Using Node.js as an access point for mobile applic... I'm not sure if I've quite grokked node.js yet, but I really want to implement it, cause what I do understand is pretty friggen sweet. I...
Python, argparse, and command line arguments Today we are going to discuss a fundamental developer, engineer, and computer scientist skill — command line arguments. Specifically, we’ll b...