高德POI数据获取,以爬取长沙学校POI为例

import requests
import pandas as pd
import numpy as np
import json

city = "长沙"
# 这里只是示例,如果你要爬全长沙建议分区爬这样数据更完整,不推荐爬数据量超过1W的,超过1w需要做切片,参看开发文档的多边形搜索

keywords = "学校"
# 这里tp示例是汽车服务,你需要查询POI类别的文档看你需要的是什么填入
tp = "010000"

url = "https://restapi.amap.com/v3/place/text?keywords={}&city={}&type={}&output=json&offset=50&page=1&key=请输入你的key&extensions=all".format(
    keywords, city, tp)
r = requests.get(url).text
dt = json.loads(r)
number = int(int(dt['count']) / 50) + 1

df = pd.DataFrame(columns=['id', 'parent', 'childtype', 'name', 'tag', 'type', 'typecode',
                           'biz_type', 'address', 'location', 'tel', 'postcode', 'website',
                           'email', 'pcode', 'pname', 'citycode', 'cityname', 'adcode', 'adname',
                           'importance', 'shopid', 'shopinfo', 'poiweight', 'gridcode', 'distance',
                           'navi_poiid', 'entr_location', 'business_area', 'exit_location',
                           'match', 'recommend', 'timestamp', 'alias', 'indoor_map', 'indoor_data',
                           'groupbuy_num', 'discount_num', 'biz_ext', 'event', 'children',
                           'photos'])

for i in range(number):
    url = "https://restapi.amap.com/v3/place/text?keywords={}&city={}&type={}&output=json&offset=50&page={}&key=b28485decd427836f19831634ebd4b6f&extensions=all".format(
        keywords, city, tp, i)
    r = requests.get(url).text
    dt = json.loads(r)
    data = pd.DataFrame(dt['pois'])
    df = pd.concat([data, df])
    df = df[['name', 'address', 'location']]
    
    location = []
    
for i in df['location']:
    location.append(str(i).split(','))
dt2 = pd.DataFrame(location,columns=['lng','lat'])
df['lng'] = dt2['lng']
df['lat'] = dt2['lat']
df = df[['name', 'address', 'lng','lat']]
df['lat'] = df['lat'].apply(lambda x: x.strip())
df['lat'] = df['lat'].apply(lambda x: float(x))
df['lng'] = df['lng'].apply(lambda x: x.strip())
df['lng'] = df['lng'].apply(lambda x: float(x))
    
df.to_csv(r'C:/Users/Windows/Desktop/test.csv', encoding='gbk', index=False)
print("finish!")


 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值