python 通过百度/高德Geocoding API 获取经纬度数据

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

http://lbs.amap.com/api/webservice/guide/api/georegeo/#geo

看文档就可以了,然后通过python解析下。

def get_jingwei(url,data=None):
    try:
        res=requests.get(url)
        data=json.loads(res.text)
        jingwei=data["geocodes"][0]["location"]
        district=data["geocodes"][0]["district"]
        data={
            "jingwei":jingwei,
            "url":url,
            "district":district
        }
        sheet_bj_xq_jw.insert(data)
    except Exception as e:
        print(e,count)
    finally:
        sheet_bj_xq_jw.insert(data)

def data2file(s):
    path = r"C:\Users\Oscar\Desktop\data1.txt"
    file = open(path, "a")
    file.write("\n")
    file.write(str(s))
    file.close()
if __name__ == '__main__':
    """连接mongodb"""
    client = pymongo.MongoClient("localhost", 27017)
    db_bj_xq_jw = client["db_bj_xq_jw"]

    sheet_bj_xq_jw = db_bj_xq_jw["sheet1"]
    import time
    from xiaoqu_list_1020 import list
    count=0
    api_url = ["http://restapi.amap.com/v3/geocode/geo?address={}&output=json&key=你的key&city=%E5%8C%97%E4%BA%AC".format(i) for i in list.split()]
    for single_url in api_url:
        # print(single_url)
        time.sleep(math.radians(3))
        get_jingwei(single_url)
        count=count+1
        print(count)

 

posted @ 2016-10-20 22:40  coskaka  阅读(598)  评论(0编辑  收藏  举报