基於Dijkstra演算法的武漢地鐵路徑規劃!
阿新 • • 發佈:2020-12-12
前言
最近爬取了武漢地鐵線路的資訊,通過呼叫高德地圖的api 獲得各個站點的進度和緯度資訊,使用Dijkstra演算法對路徑進行規劃。
1.資料爬取
首先是需要獲得武漢各個地鐵的地鐵站資訊,通過爬蟲爬取武漢各個地鐵站點的資訊,並存儲到xlsx檔案中
武漢地鐵線路圖,2021最新武漢地鐵線路圖,武漢地鐵地圖-武漢本地寶wh.bendibao.com
方法:requests、BeautifulSoup、pandas
import requests from bs4 import BeautifulSoup import pandas as pd def spyder(): #獲得武漢的地鐵資訊 url='http://wh.bendibao.com/ditie/linemap.shtml' user_agent='Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50' headers = {'User-Agent': user_agent} r = requests.get(url, headers=headers) r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text, 'lxml') all_info = soup.find_all('div', class_='line-list') df=pd.DataFrame(columns=['name','site']) for info in all_info: title=info.find_all('div',class_='wrap')[0].get_text().split()[0].replace('線路圖','') station_all=info.find_all('a',class_='link') for station in station_all: station_name=station.get_text() temp={'name':station_name,'site':title} df =df.append(temp,ignore_index=True) df.to_excel('./subway.xlsx',index=False)
我們將爬取的地鐵資訊儲存到excel檔案中
如果要做路徑規劃的話,我們還需要知道地鐵站的位置資訊
因此我們選擇了高德地圖的api介面
2.高德地圖api介面配置
高德開放平臺 | 高德地圖 APIlbs.amap.com