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

  • 相关阅读:
    *** 实现冒泡排序模板
    *** 实现stack模板
    python uses xml
    [转]给未来的电子通信工程师
    *** strRevert.cpp
    *** strlen.cpp
    *** checkRevStr.cpp 查看字符串是否是回文
    *** 自己代码:实现字符串比较
    *** 自写代码:查找两个字符串的最大公共子串
    *** 自写代码:在字符串中插入连续字符的个数
  • 原文地址:https://www.cnblogs.com/zle1992/p/7209932.html
Copyright © 2011-2022 走看看