此程序首先是通过8684爬取公交路线名,然后用名称向高德开放平台请求关键字搜索服务,获取详细信息(如:站点信息,坐标,运行时间等),最后在地图上输出一条线路的路线图
网上有很多类似的博客教程(尤其是csdn我就是在这里找到灵感的),但都过时了目前一个都运行不了,秉承着互联网的分享精神(我自己也是在网上找找改改代码的)所以我通过写博客分享出去
github上我上传了完整的代码文件,考虑到不是每一个看csdn的人都有梯子会翻墙,我最后放一个网盘吧
链接:https://pan.baidu.com/s/1C7fyx9xFZ0Chw0Zf2nMESg?pwd=kj0s
提取码:kj0s
test文件为爬取主程序,爬取的线路名会生成data_(city).txt 我放了一个济南的提供参考,程序自带一个检查是否有重复文件的判断,不建议忽略该功能。取会导致重复数据固定在txt里,另外!8684爬取到的信息不完全准确,请注意
注意事项:无论是8684网站抓取的关键字、还是高德开放平台的url都有更新的可能,不保证永远可用。其他博客的代码不能用基本都是因为高德的url更新了,而高德开放平台技术文档又没有全部的url信息,所有这个url我是自己一个个试出来的。如果无法运行优先考虑是否是以上问题。另外高德开发平台个人认证者每日请求的配额少得可怜,我为了能一次获取一个城市数据,找了12个人帮我申请key,同时调用这12个key,为了他人隐私我将key删除了,自己申请key写进去吧,在111行
生成的公交详细信息保存在城市公交路线.csv 我放了一个济南的提供参考
最后map.py是生成路径图的,同理需要高德开放平台的key(我把我自己的key留在上面了,应该可以直接运行测试),生成在map文件夹(自己在根目录新建一个文件夹) )里的http文件,不知道为什么打开很慢需要挂梯子(同上放了一个参考文件)
另外:get_line(7).py文件是一个包含了pyqt界面的集合代码,毕竟我做这个的初衷是为了课程设计,界面及搜索等功能设计的很简陋(仅支持模糊搜索)。我没时间做到了,外加这不是我负责的内容懒得弄了有兴趣的可以自己完善一下,爬取部分的代码与之前一致,仅暴力整合进去了而已。没有兴趣的下载,用test.py即可
个人课设作品,才疏学浅,请多见谅。如需解答联系:wang.aoze.mail@gmail.com
这是济南31路公交的运行线路图
我知道网上有很多其他文章能生成出一整个城市的路线图,但是那太吃高德开放平台申请的key配额了,不现实(其实用这个办法获取城市全部的公交信息更不现实,我自己实在是没回头路了,才想出用12个人的key的昏招)。尤其是看这篇文章的你也是在为了课设的话,那就是在宝贵的日子里浪费宝贵的每日配额
如果我哪天有空心血来潮的话,做一个试试。做出来的话我会更新文章,我要是懒的弄的话就算了