经过前期业务的不断探索,公司从加油app的调研,转向了新能源充电车app的开发中,在这调研的过程中,给了我各种各样稀奇古怪的爬取相关数据的需求。当然,目前公司新能源充电app已于四月份顺利上线。以下是给了一份经纬度详细坐标的excel,通过高德地图公共的接口,获取相关省市县信息的代码:

import requests
import xlwt
import pandas as pd

#根据经纬度,逆向生成省市县
# 高德地图
#key:去高德开发者平台申请,填你自己申请的key
def geocode(location):
    parameters = {'output': 'json', 'location': location, 'key': '',
                  'extensions': 'all'}
    base = 'https://restapi.amap.com/v3/geocode/regeo'
    response = requests.get(base, parameters)
    answer = response.json()
    #print('url:' + response.url)
    #print(answer)
    return answer['regeocode']['addressComponent']['province'], answer['regeocode']['addressComponent']['city'],answer['regeocode']['addressComponent']['district']

df1 = pd.read_excel("E:\cityNew\gps11.xlsx", usecols=["地址经度","地址纬度"], names=None)
df_li1 = df1.values.tolist()
polist = []
for i in range(len(df_li1)):
    xtmp = str(df_li1[i][0])
    ytmp = str(df_li1[i][1])

    locations = str(ytmp)+','+str(xtmp)
    #print(locations)
    province, city, district = geocode(locations)
    #print(province)
    #print(city)
    #print(district)
    polist.append(str(province) +','+ str(city) +','+ str(district))
print(polist)


def write_to_excel(polist):
    # 一个Workbook对象,这就相当于创建了一个Excel文件
    book = xlwt.Workbook(encoding='utf-8', style_compression=0)
    sheet = book.add_sheet(province, cell_overwrite_ok=True)

    # 第一行(列标题)
    sheet.write(0, 0, '省')
    sheet.write(0, 1, '市')
    sheet.write(0, 2, '县/区')

    for i in range(len(polist)):

        array = polist[i].split(",")
        sheet.write(i + 1, 0, array[0])
        sheet.write(i + 1, 1, array[1])
        sheet.write(i + 1, 2, array[2])

        book.save('省市县.xls')
write_to_excel(polist)