接入高德地图api实现地图某特定关键词的信息抓取

import requests
import pandas as pd
import os
import json

# key
amp_api_key = "从高德处获取key并输入到此框内"

# 请求地址前缀
req_url_pref = "https://restapi.amap.com/v3/place/text?"

# 分页信息
page_size = 20  # 每页20个数据
page_num = 1  # 代表第一页

# 请求参数
rep_params = {
    "keywords": "建材市场",
    "city": "上海",
    "offset": page_size,
    "page": page_num,
    "extentions": "base",
    "key": amp_api_key,
    "children": 1,
    "citylimit": "true"
}


def get_poi_from_amap(): #分页获取高德api已经显示的信息
    result = pd.DataFrame()
    i = 1
    while True:
        print("i:", i)
        page_num = i
        rep_params["page"] = page_num
        response = requests.get(req_url_pref, params=rep_params)
        data = response.json()
        count = data["count"]
        print("count", count)
        if count == "0":
            break

        # 将每次分页结果数据插入指定的目标文件中
        for j in range(0, len(data["pois"])):
            name = data["pois"][j]["name"]
            address = data["pois"][j]["address"]
            location = data["pois"][j]["location"]
            lon = data["pois"][j]["location"].split(",")[0]
            lat = data["pois"][j]["location"].split(",")[1]
            busi_data = [
                {
                    "name": name,
                    "address": address,
                    "location": location,
                    "lon": lon,
                    "lat": lat,
                }
            ]

            df = pd.DataFrame(busi_data) #DataFrame生成二位excel表
            result = result.append(df)
            print(result)
            output_path = os.getcwd() + os.sep + "poi_construct_market.xlsx"#文件的储存路径
            result.to_excel(output_path)
        i = i + 1


if __name__ == "__main__":
    get_poi_from_amap()

注意要预装requests,pandas,json,os模块才能正常与运行,输出结果为excel表,在高德api中申请开发者账号,创键新的软件>web开发,获得开发者的key,并填入上方的代码中,输出结果中会显示名称,地质和经纬度等消息。

改进方向:1.可以在字典中添加更多的信息

2.可以尝试不使用地图的api来获取地图的所有信息

3.可以用pandas库中的df来以csv的形式进行保存,代码更加简介明了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值