百度地图接口

下面有两个例子:

  1. 利用百度地图API提供的接口爬取跟银行有关的相关信息
  2. 利用百度地图API提供的接口爬取跟平安门有关的相关信息

http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=您的ak
参数说明:
query:检索的关键字
region:检索的区域(市级以上)
output:输出的格式json/xml
ak:用户的访问密钥,可以在百度地图API平台上进行申请

# 接口示例
import urllib.parse
import urllib.request
import json

# http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=您的ak //GET请求
args = {'query':'ATM机','region':'郑州','output':'json', 'ak': 'S2uzcu5og9j5h2tWPrBR9H0Fw8jiq9Wo'}
# 将中文参数base64编码
b64_args = urllib.parse.urlencode(args)
print(b64_args)
# 拼url请求
base_url = 'http://api.map.baidu.com/place/v2/search'
url = base_url + '?'+ b64_args
print('拼好的url', url)
resp = urllib.request.urlopen(url)
content_json = resp.read().decode()
# print(content_json)
# json转对象
content_obj = json.loads(content_json)
# print(content_obj)
results = content_obj['results']
for row in results:
       print(row['name']), row['address']

代码效果:
query=ATM%E6%9C%BA®ion=%E9%83%91%E5%B7%9E&output=json&ak=S2uzcu5og9j5h2tWPrBR9H0Fw8jiq9Wo
拼好的url http://api.map.baidu.com/place/v2/search?query=ATM机®ion=郑州&output=json&ak=S2uzcu5og9j5h2tWPrBR9H0Fw8jiq9Wo
中国工商银行ATM(英才街)
中国工商银行ATM(自贸试验区支行)
中国农业银行ATM
中国建设银行ATM(郑州商贸路支行)
中国农业银行24小时自助银行(丰乐路)
中国邮政储蓄银行ATM
中国银行ATM(人民路)
中国建设银行ATM(丰庆路分理处)
平安银行ATM(郑州分行)
广东发展银行ATM(嵩山路支行)


import urllib
import urllib.request
import json

origin_args = {'query':'天安门','region':'北京','output':'json','ak':'MasldxGUE0fbZMNNzX2LKAnVeWnFjQOI'}
b64 = urllib.parse.urlencode(origin_args)
print(b64)
base_url = 'http://api.map.baidu.com/place/v2/suggestion'
url = base_url+'?'+b64
print('拼好的url',url)

resp = urllib.request.urlopen(url)
content_json = resp.read().decode()
# print(content_json)
content_ojb = json.loads(content_json)
# print(content_ojb)
result = content_ojb['result']
# print(result)
for rwo in result:
    print(rwo['name'],rwo['location'])

代码效果:
query=%E5%A4%A9%E5%AE%89%E9%97%A8®ion=%E5%8C%97%E4%BA%AC&output=json&ak=MasldxGUE0fbZMNNzX2LKAnVeWnFjQOI
拼好的url http://api.map.baidu.com/place/v2/suggestion?query=天安门®ion=北京&output=json&ak=MasldxGUE0fbZMNNzX2LKAnVeWnFjQOI
天安门 {‘lat’: 39.915526, ‘lng’: 116.403847}
天安门广场 {‘lat’: 39.909652, ‘lng’: 116.404177}
天安门东-地铁站 {‘lat’: 39.91408, ‘lng’: 116.407851}
天安门广场-国旗 {‘lat’: 39.91328, ‘lng’: 116.40393}
天安门西-地铁站 {‘lat’: 39.913776, ‘lng’: 116.39805}
天安门-华表 {‘lat’: 39.91433, ‘lng’: 116.404413}
天安门东-公交车站 {‘lat’: 39.914081, ‘lng’: 116.408031}
天安门广场-入口 {‘lat’: 39.907253, ‘lng’: 116.405886}
天安门西-公交车站 {‘lat’: 39.913723, ‘lng’: 116.398056}
天安门广场东-公交车站 {‘lat’: 39.907977, ‘lng’: 116.406071}

你可能感兴趣的:(python基础)