一、获取城市所有公交线路名
以公交网上的所有公交线路为准,对比后发现,网址由三部分组成:城市拼音,不变的部分和数字。如果你想换成其他城市,改前面的部分即可。
用xpath定位所有的公交线路名。
通过for循环,获取1到9页的公交线路名字,添加append为列表类型。
获取的公交线路名都是以城市名开头的,通过分割split函数去掉。
总共获取了646条。
二、获取公交线路基本信息
Key需要到高德开放平台申请,免费,offset=1是单向,offset=2是双向。
不过和上个月的上市公司地理编码不同的是,这回要选择的是Web端。
返回的网页源代码是json格式。
观察json文件的结构,公交线路有两个内容Object。
buslines字段里,第一个元素是下行,第一个元素是上行。上下行的区分,好像是朝向火车站开的为上行,背离火车站方向的为下行,如果错误,请指正。
根据不同的字段,获取公交线路上下行所属公司company、长度distance、线路名name、总价total_price和类型type。
获取下行公交线路的函数,第9行判断下线路名是否为空,为空就跳过pass了。
格式化函数format,把第一个参数城市名city替换为绿色箭头所指位置,把第二个参数公交线路名line替换为蓝色箭头所指位置,组成新的url。
获取上行公交线路的函数,把0改为1就是上行。
也可以组合在一起获取。
测试下,看能否正常执行。
三、获取城市所有公交线路的信息
第2行的lines来自第一部分,第5行的函数get_line_down来自第二部分。
实际上,前两个为空值,有效公交线路为644条。
结尾
1. 公交线路上下行长度不一样。
2. 公交线路上下行所属的公司有可能不一样。