您当前的位置: 首页 >  Python

漏刻有时

暂无认证

  • 0浏览

    0关注

    717博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python实战:爬取百度地图web服务API接口行政区划区域检索POI

漏刻有时 发布时间:2021-08-25 07:53:41 ,浏览量:0

地点检索服务 地点检索服务(又名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!

关注
打赏
1661217259
查看更多评论
立即登录/注册

微信扫码登录

0.0422s