国内携程一日航线Python实现
项目介绍
这是一个简单的小项目,可以用一句话来简单概括:
爬取携程当日航班信息绘制在国内地图上。
爬取信息
这里我采用的是Scrapy框架+Selenium动态爬取。
并没有什么可以需要注意的地方,不过有一点需要提醒一下。当使用chromedriver时,若是报错
chromedriver executable needs to be in PATH
可以采用以下三种方法解决:
在环境变量中加入chromedriver位置
将代码改为
driver = webdriver.Chrome('C:/path/to/chromedriver.exe')
- 将chromedriver放置于目标位置,Linux为
/usr/bin/
,Windows为PythonXX/Scripts/
绘制地图
绘制地图使用的是Basemap包,而Basemap基于2.7,即正常情况下无法使用。
通过Python Extension Packages for Windows可得到基于Py3的Basemap Package。
为了得到中国省份边界,可以通过GADM获取数据,然后通过readshapefile()方法加载数据。
绘制航线
将地点与经纬度以字典方式传入{'city',[lon, lat]}
,根据获得数据用drawgreatcircle()进行绘制。
最后得到目标图片: