• Python3爬虫 利用百度地图api得到城市经纬度


    有2种方式,第一种是利用urllib ,

    方法1:利用urllib , 先把url 转成urlcode,然后读取网页,读到网页再用json读取内容,比较麻烦。

    可以在浏览器输入,看一下格式。

    http://api.map.baidu.com/geocoder?key=f247cdb592eb43ebac6ccd27f796e2d2&output=json&address=北京市

    2.将查询转换为urlcode

    读取网页内容:

     读取json数据:

     程序:

    复制代码
     1 from urllib import parse
     2 query = {
     3  'key' : 'f247cdb592eb43ebac6ccd27f796e2d2',
     4  'address': '北京市',
     5  'output':'json',
     6   }
     7 base = 'http://api.map.baidu.com/geocoder?'
     8 url = base+parse.urlencode(query)
     9 
    10 import urllib.request
    11 doc = urllib.request.urlopen(url)
    12 s = doc.read().decode('utf-8')  #一定要解码!!!!
    13 import json
    14 jsonData = json.loads(s)
    15 lat=jsonData['result']['location']['lat']
    16 lng =jsonData['result']['location']['lng']
    复制代码

    方法二:利用request模块,更加简单。

    程序:

    1 address = '北京市'
    2 url= 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&address='+str(address)
    3 response = requests.get(url)
    4 answer = response.json()
    5 lon = float(answer['result']['location']['lng'])
    6 lat = float(answer['result']['location']['lat'])

     参考:

    http://www.cnblogs.com/GuoYaxiang/p/6232831.html

    http://www.cnblogs.com/Lands-ljk/p/5447127.html

    http://blog.csdn.net/dove1980/article/details/7929693

     http://blog.csdn.net/lanchunhui/article/details/51207696

  • 相关阅读:
    python深浅拷贝
    软件开发目录规范
    编码规范
    python进程、线程、协程的介绍及使用
    soket粘包问题及解决方案
    python socket通信
    数据开发_机器学习
    数据开发_开发工具以及工具链
    数据开发_Python读取文件
    数据开发_Java设计模式_IO以及读取资源文件
  • 原文地址:https://www.cnblogs.com/hankleo/p/10608048.html
Copyright © 2020-2023  润新知