1. 函数要点整理
get_amap_poi(city, keywords, page)
这个函数旨在从高德地图中提取指定城市的POI(Point of Interest)信息。以下是函数的参数和返回值说明:
-
参数:
city
: 城市名称,指定要搜索的城市。keywords
: 关键词,用于过滤POI,例如"公交站"。page
: 返回POI的页码数,用于分页获取结果。
-
返回值:
- 包含POI信息的列表。
2. 代码实现思路
- 构建高德地图Web API请求的URL。
- 替换
api_key
为你的高德地图Web API密钥。 - 定义请求参数,包括
key
(API密钥)、keywords
、offset
(偏移量)、page
(页码数)、city
(城市名称)、output
(输出格式为json)。 - 使用
requests.get
发起GET请求。 - 解析响应,提取POI信息。
3. 整体代码(附加注释)
import requestsdef get_amap_poi(city, keywords, page):"""获取高德地图上指定城市的POI信息:param page: 返回poi的页码数:param city: 城市名称:param keywords: 关键词,例如"公交站":return: POI信息的列表"""amap_api_url = "https://restapi.amap.com/v3/place/text"# 替换为你的高德地图Web API Keyapi_key = "YOUR_WEB_API_KEY"# 请求参数params = {"key": api_key,"keywords": keywords,"offset": 1000,"page": page,"city": city,"output": "json"}# 发起请求response = requests.get(amap_api_url, params=params)result = response.json()# 提取POI信息if result["status"] == "1" and int(result["count"]) > 0:pois = result["pois"]return poiselse:print("未找到符合条件的POI信息")return []def main():city_name = "武汉市" # 替换为目标城市keyword = "高等院校"page_num = 1pois = get_amap_poi(city_name, keyword, page_num)output_label = ['name', 'location', 'tel', 'pname', 'cityname', 'adname', 'address']if pois:for poi in pois:info = []for label in output_label:info.append(poi[label])print(info)else:print("未找到符合条件的POI信息")if __name__ == "__main__":main()
4. 注意事项
- API密钥替换: 将
api_key
替换为你在高德地图开放平台注册应用后获得的API密钥。 - 城市名称: 在
main
函数中,将city_name
替换为你希望搜索的城市名称或城市编码。 - 关键词: 在
main
函数中,将keyword
替换为你希望搜索的关键词,例如"学校"、"医院"等。 - 输出字段:
output_label
定义了输出的字段,可以根据需要进行调整。确保这些字段在API返回的POI信息中存在。 - 编码表链接: 高德Web服务 API 相关POI编码与城市编码表
以上代码可用于爬取高德地图上指定城市的特定关键词POI信息。在使用时,请遵循高德地图API的使用规定,特别是保护个人信息和防止滥用API。
术语解释表格:
术语 | 解释 |
---|---|
POI | Point of Interest,地理位置上感兴趣的点,如学校、医院等。 |
API | Application Programming Interface,应用程序编程接口,用于不同软件系统间的通信。 |
JSON | JavaScript Object Notation,一种数据交换格式。 |
如果这对您有所帮助,希望点赞支持一下作者! 😊
点击查看原文