高德地图POI信息获取——爬虫小实验

写在前面:不详尽支出,各位看官可在留言区留言说明,我会尽快补充回复!

上传一个之前数据爬取过程中,编写的一个小程序,代码如下

# -*- coding: utf-8 -*-
import json
import sys
import requests
ty=sys.getfilesystemencoding()  #这个可以获取文件系统的编码形式
import time


key='3d6da9b06#######'		#使用的时候将自己在高德地图开发者上申请的Web服务key加入即可,这里的key是有问题的
#我们把变量都放在前面,后面就不涉及到变量了,如果要爬取别的POI,修改这几个变量就可以了,不用改代码了。

print (time.time())  #相较于python2.7,,python3print 需要加括号。
print ('开始')
urls=[]  #声明一个数组列表

citys = [360600,360601,360602,360603,360681]	#这里的表示为行政区代码,参考高德平台发布的城市编码表,文末附超链接
for city in citys:
    for num in range(0,6):      #这个范围根据数据量需求量来定,避免时间成本、计算成本等的浪费
        page_num = str(num)
        url = 'https://restapi.amap.com/v3/place/text?city='+str(city)+'&keywords='+keywords+'&key='+key+'&page_size=20&page_num='+page_num+'&output=json'
        urls.append(url)
#urls.append(url)的意思是,将url添加入urls这个列表中。

txtFile = r'C:\Users\BAT\Desktop\result.txt'
jsonFile = r'C:\Users\BAT\Desktop\result.json'

f=open(txtFile,'a',encoding='utf-8')
f2=open(jsonFile,'a',encoding='utf-8')
print ('url列表读取完成')
for url in urls:
    print(url)
    time.sleep(1) #为了防止并发量报警,设置了一个10秒的休眠。
    html=requests.get(url)#获取网页信息
    data=html.json()#获取网页信息的json格式数据
    jsonData = json.dumps(data)
    f2.write(jsonData)
    for item in data['pois']:
        jname=item['name']
        jadname = item['adname']
        jloca=item['location']
        # jadd=item['address']
        j_str=jname+','+jadname+','+str(jloca)+'\n'
        f.write(j_str)
f.close()
f2.close()
print ('完成')

用户可以在此高德开放平台 | 高德地图API注册为开发者用户,并在个人应用管理中申请自己的Web服务key!
高德地图应用管理截图
文中所需的城市编码查询:
在这里插入图片描述

城市编码表POI分类编码下载地址(点击即下载)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值