GIS入门 | 如何通过腾讯 / 高德 / 百度地图API获取POI数据

🙇‍♀️对不起我是标题党,但是应该调用不同地图运营商API爬数据大同小异,大家看着不同运营商的开发文档做适当调整就好了~~~我这里就拿腾讯位置服务为例了。

😋爬虫前需要铺垫一些知识,这样可以帮助我们更好地理解代码以及爬虫的机制__其实我也是一知半解,因为最近的课设接触这方面,如果有说的不对请指正🙇‍♀️!而且代码是参考了往年的学姐的资料,学姐如果你发现你的代码被我抄袭了,请原谅我!!!私密马赛😭

目录

1.关于爬取的流程机制

2.关于额度

3.关于坐标系

4.代码及如何使用


1.关于爬取的流程机制

        接触爬虫前,经常会听到讲要“学习HTTP协议”、“考虑反爬虫措施”......🤔啥也不懂,我觉得也不用太懂,因为各种库会帮你解决这个问题,你会用代码以及大概知道代码中哪部分是完成这个工作就行了...(勿喷,我没有深究的志向)

        最最最重要的就是好好看开发文档,里面有说明必填的参数,以及有实际的例子。😇爬取数据可以抽象地理解为:把研究区域细分为圆形、矩形或是行政区县(不同的搜索方式),然后遍历这些细分的研究区域,每次生成新的URL爬取数据

        附上地点搜索开发文档:WebService API | 腾讯位置服务

        每次生成新的URL在代码中的体现(以矩形搜索为例):

url0 = 'https://apis.map.qq.com/ws/place/v1/search'
# 构造查询参数,包括区域边界、API密钥、搜索关键字等
    query = {
        'boundary': 'rectangle(' + str(data['Y_min'][i]) + ',' + str(data['X_min'][i]) + ',' +
                    str(data['Y_max'][i]) + ',' + str(data['X_max'][i]) + ')',
        'key': '',  # 填你的API密钥
        'keyword': '厕所',  # 搜索关键字,这里为厕所
        'page_size': 20,  # 每页返回的最大地点数量
        'page_index': x  # 当前页码
    }

    # 拼接完整的请求URL
    url = url0 + '?' + urllib.parse.urlencode(query)

        而每次新的URL响应返回的消息如何保存呢?因为我没有很了解Python的数据结构🤡,抽象地理解就是要先定义一个字典(相当于定义数据库的“字段”),然后将爬取的数据填到这个字典中。在代码中是这样体现的:

# 初始化一个字典以存储从API返回的结果
res = {
    "id": [],  # 存储地点的ID
    "title": [],  # 存储地点的名称
    "address": [],  # 存储地点的地址
    "lng": [],  # 存储地点的经度
    "lat": []  # 存储地点的纬度
}

 # 将响应的JSON文本解析为Python字典
    response = json.loads(response.text)

    # 检查API返回的状态是否正常(status为0表示成功)
    if response.get('status') == 0:
        POIs = response.get('data')  # 获取地点数据
        for poi in POIs:
            # 将每个地点的信息添加到结果字典中
            res["id"].append(poi['id'])
            res["title"].append(poi['title'])
            res["address"].append(poi['address'])
            res["lng"].append(poi['location']['lng'])
            res["lat"].append(poi['location']['lat
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值