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

时间:2023-03-09 15:52:19
Python3爬虫 利用百度地图api得到城市经纬度

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

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

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

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

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

2.将查询转换为urlcode

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

读取网页内容:

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

读取json数据:

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

程序:

Python3爬虫 利用百度地图api得到城市经纬度
 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']
Python3爬虫 利用百度地图api得到城市经纬度

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

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

程序:

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