通过高德API爬取城市路径

1. 本项目主要服务于物流同行,通过API抓取路径距离

#抓取始发地与目的地距离
#高德API

import requests
import pandas as pd

#获取城市经纬度定位
def get_loc(address, key):
    #接口URL
    url ='https://restapi.amap.com/v3/geocode/geo?'
    #设置参数key、address
    params = {
        'key':key,
        'address':address
        }
    #传入参数,get指令获取信息
    response = requests.get(url, params= params, timeout = 30)
    #将信息JS解析
    r = response.json()
    #获取经纬度
    loc = r['geocodes'][0]['location']
    return loc

#获取始发城市与目标城市的路径距离
def get_distance(origin, destination,key):
    #接口URL
    url = 'https://restapi.amap.com/v3/direction/driving?'
    #设置参数key、address
    params = {
        'key':key,
        'origin':origin,
        'destination':destination
        }
    #传入参数,get指令获取信息
    response = requests.get(url, params= params, timeout = 30)
    #将信息JS解析
    r = response.json()
    #获取路径距离
    dis = r['route']['paths'][0]['distance']
    return dis

#key口令
key = 

#城市列表读取路径
path_input = 

#读取始发城市列表
df1 = pd.read_excel(path_input,sheet_name='始发城市')

#读取目标城市列表
df2 = pd.read_excel(path_input,sheet_name='目标城市')

#设置空列表,用于接受结果
results = []

#遍历始发城市
for x in df1['始发城市']:
    #遍历目的城市
    for y in df2['目标城市']:
        try:
            #获取始发城市经纬度
            origin = get_loc(x, key)
            #获取目标城市经纬度
            destination = get_loc(y, key)
            #获取路径距离
            d = get_distance(origin, destination, key)
            #将结果传入空列表
            results.append([x,y,d])
        except:
            results.append([x,y])
        print(x,y)

#将结果列表转换成df
df = pd.DataFrame(results,columns=['始发城市','目标城市','距离'])

#设置结果输出路径
path_output = 

df.to_excel(path_output,index=False)
print('路径计算完成,已保存至:', path_output)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值