地点检索服务 地点检索服务(又名Place API)是一类Web API接口服务; 服务提供多种场景的地点(POI)检索功能,包括城市检索、圆形区域检索、矩形区域检索。开发者可通过接口获取地点(POI)基础或详细地理信息。
百度API接口封装import requests
def getPOI(query, tag, region, bdkey, page_num):
bdurl = "https://api.map.baidu.com/place/v2/search?query={}&tag={}®ion={}&output=json&ak={}&page_size=20&page_num={}".format(
query, tag,
region,
bdkey, page_num)
res = requests.get(bdurl)
return res.text
爬取数据并存为excle
from common import getPOI
import xlwt
import os
import json
# 保存为Excel文件
def save_excel(sheetname, column_name_list):
# 爬取POI数据
bdkey = "11Z8uiP8kIz6AG0Vjiwzb**"
query = "医疗"
tag = ""
region = "宁波市海曙区"
for page_num in range(0, 20):
res = getPOI(query, tag, region, bdkey, page_num)
# JSON解码
resJson = json.loads(res)
# print(resJson)
read_list = []
for i in resJson["results"]:
str1 = i["name"]
str2 = i["city"]
str3 = i["area"]
str4 = i["name"]
str5 = i["location"]['lng']
str6 = i["location"]['lat']
str7 = i["address"]
# 字典的key不存在判断
if 'telephone' in i:
str8 = i["telephone"]
else:
str8 = ""
infostr = str1 + "|" + str2 + "|" + str3 + "|" + str4 + "|" + str(str5) + "|" + str(
str6) + "|" + str7 + "|" + str(str8)
read_list.append(infostr)
# print(read_list)
# 表格工具
workbook = xlwt.Workbook()
sheet1 = workbook.add_sheet(sheetname=sheetname)
# 标题头
for j in range(0, len(column_name_list)):
sheet1.write(0, j, column_name_list[j])
# 内容
k = 1
for v in read_list:
kval = v.split('|')
for j in range(0, len(kval)):
sheet1.write(k, j, kval[j])
k = k + 1
# 默认保存路径
save_path = ""
if save_path == "":
save_path = os.getcwd() + "/res/{}.xls".format(page_num)
# 按需生成表格;
if len(read_list) > 0:
workbook.save(save_path)
print('第{}个表格信息保存 OK,记录条数共计:'.format(page_num) + str(len(read_list)))
执行爬取命令
# 执行爬取
sheetname = "sheet1"
column_name_list = ["省份", "城市", "区县", "名称", "经度", "纬度", "地址", "电话"]
save_excel(sheetname, column_name_list)
lockdatav Done!