zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2006百度之星
    使用StretchBlt之前一定要用SetStretchBltMode(COLORONCOLOR)
    算法学习建议(转)
    让ARM开发板上SD卡里的程序开机自动运行
    我的Dll(动态链接库)学习笔记
    WinCE 应用程序开机自动运行的又一种方法
    讲讲volatile的作用
    用Platform builder定制WinCE系统
    MFC如何高效的绘图
    利用c语言编制cgi实现搜索
  • 原文地址:https://www.cnblogs.com/hankleo/p/10608048.html
Copyright © 2011-2022 走看看