import requests
import json
import xlrd
import xlwt
# 获取百度地图api函数
def getAPI(address):
url = 'https://api.map.baidu.com/geocoding/v3/'
params = {
"address": address, # 点位地址
"ak": "*", # 百度密钥
"city": "上海市",
"output": "json" # 输出结果设置为json格式
}
res = requests.get(url=url, params=params)
jd = json.loads(res.text) # 将json格式转化为Python字典
return jd
# 读取点位表格信息
def excel(path1):
wb = xlrd.open_workbook(path1) # 打开Excel文件
sheet = wb.sheet_by_name('Sheet1') # 通过excel表格名称(rank)获取工作表
dat = [] # 创建空list
for a in range(sheet.nrows): # 循环读取表格内容(每次读取一行数据)
cells = sheet.row_values(a) # 每行数据赋值给cells
dat.append(cells)
return dat
# 将查询出来的数据写入表格
def backexecl(list1):
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("sheet0")
row = 0
column = 0
# a.insert(0, table_zd)
# 创建表头
for y in range(1, len(list1)+1):
if row <= len(list1):
for i in range(0, 3):
sheet.write(row, column, list1[y - 1][i])
column += 1
row += 1
column = 0
# 保存
workbook.save("爬取百度地图经纬度信息.xls")
print("完成")
if __name__ == '__main__':
path1 = "1.xlsx"
biao = excel(path1)
list1 = []
for i in biao:
# print(i[1])
list2 = []
data = getAPI(i[1])
list2.append(i[1])
# print(data)
list2.append(data["result"]["location"]["lng"])
list2.append(data["result"]["location"]["lat"])
list1.append(list2)
# print(list1)
backexecl(list1)