- https://lbs.amap.com/dev/key/app 在高德开放平台注册成为开发者
- 创建新应用,获得调用webapi的key值
- https://lbs.amap.com/api/webservice/gettingstarted 根据开发指南获取到对应的请求地址
下面是获取安庆地区的餐饮信息的一个封装
import json
import requests
import time
import xlwt
dictlists = []
class Create_info():
def __init__(self, n, token, type, address):
self.n = n
self.token = token
self.type = type
self.address = address
def create_url(self):
urls = []
for i in range(1, self.n): # page是当前页码, offset是每页多少条数据,默认20条
url = 'https://restapi.amap.com/v3/place/text?key={}&types={}&city={}&citylimit=true&output={}&page={}&extensions=all'.format(self.token, self.type, self.address, 'JSON', i)
urls.append(url)
return urls
def get_req(self, urls):
j = 0
for url in urls:
print(url)
res = requests.request('GET', url=url)
time.sleep(1)
res = json.loads(res.text)
l = res.get('pois')
for i in l:
print(i)
j += 1
print(j)
dict1 = {}
dict1['name'] = i.get('name')
dict1['address'] = i.get('address')
dict1['tel'] = i.get('tel')
dictlists.append(dict1)
return dictlists
def write_to_excel(self, poilist):
# 一个Workbook对象,这就相当于创建了一个Excel文件
book = xlwt.Workbook(encoding='utf-8', style_compression=0)
sheet = book.add_sheet('ceshi', cell_overwrite_ok=True)
sheet.write(0, 0, '店名')
sheet.write(0, 1, '地址')
sheet.write(0, 2, '电话')
for i in range(len(poilist)):
sheet.write(i + 1, 0, poilist[i]['name'])
sheet.write(i + 1, 1, poilist[i]['address'])
sheet.write(i + 1, 2, poilist[i]['tel'])
book.save(r'安庆市.xlsx')
print('save success')
def run(self):
urls = self.create_url()
dictlistss = self.get_req(urls)
print(len(dictlists))
self.write_to_excel(dictlistss)
if __name__ == '__main__':
token = '259703e680a6fd230c1b65ae7b0ec733433'
c = Create_info(100, token, '050000', '安庆市')
c.run()