注册账号创建密钥获取AK
import requests
import json
from config import AK
"""
http://api.map.baidu.com/place/v2/search?q=公园®ion=北京&output=json&ak=*******************
q 搜索关键词
region 检索区域(市级以上行政区域)
scope 默认值为1 检索结果详细程度 1检索poi基本信息 2检索poi详细信息
page_size 范围记录数量
page_num 分页页码 默认0第一页
output 输出格式为json或xml
ak 密钥
"""
def get_json(loc, page_num=0):
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0"}
params = {'q': '公园',
'region': loc,
'scope': '2',
'page_size': 20,
'page_num': page_num,
'output': 'json',
'ak': AK}
r = requests.get('http://api.map.baidu.com/place/v2/search', params=params, headers=headers)
decode_json = json.loads(r.text)
return decode_json
if __name__ == '__main__':
lists = get_json('北京市', 1) # 获取json
print('total', lists['total'])
print('JSON信息', lists)
print("=========================================================================================================")
for i in lists['results']:
print(i['name'], '\t', i['address'])
print("=========================================================================================================")
province_list = ['云南省', '河南省']
for p_ in province_list:
province_list = get_json(province_list)
print(province_list)
for p in province_list['results']:
print(p['name'], '\t', p['num'])
output = '\t'.join([p['name'], str(p['num'])]) + '\r\n'
with open('cities.txt', 'a+', encoding='utf-8') as f:
f.write(output)