python爬取交通线路_爬取了644条公交线路,得出了两个结论——Python爬虫示例

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Ffdfd8c85e9d344fb9c987e875e62dedf.png&thumbnail=650x2147483647&quality=80&type=jpg

一、获取城市所有公交线路名

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F6a629bce75aa40dd87aa2b85b246f88f.png&thumbnail=650x2147483647&quality=80&type=jpg

以公交网上的所有公交线路为准,对比后发现,网址由三部分组成:城市拼音,不变的部分和数字。如果你想换成其他城市,改前面的部分即可。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fd3e7913c2767496694b87afe9361897a.png&thumbnail=650x2147483647&quality=80&type=jpg

用xpath定位所有的公交线路名。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F8c6893b7028e4e309b186f62179e4728.png&thumbnail=650x2147483647&quality=80&type=jpg

通过for循环,获取1到9页的公交线路名字,添加append为列表类型。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F17b238b77be64d029f671a108473d4f2.png&thumbnail=650x2147483647&quality=80&type=jpg

获取的公交线路名都是以城市名开头的,通过分割split函数去掉。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Faa95d15ed95449d7b0d5f1290e2672ac.png&thumbnail=650x2147483647&quality=80&type=jpg

总共获取了646条。

二、获取公交线路基本信息

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F1d666c9b190f4369af1815819194234b.png&thumbnail=650x2147483647&quality=80&type=jpg

Key需要到高德开放平台申请,免费,offset=1是单向,offset=2是双向。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F5525f5862bbb4df39fea081144328e51.png&thumbnail=650x2147483647&quality=80&type=jpg

不过和上个月的上市公司地理编码不同的是,这回要选择的是Web端。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fb18e9ef320a24230a8970f7000f2af16.png&thumbnail=650x2147483647&quality=80&type=jpg

返回的网页源代码是json格式。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F8eb84531f08646baae33ce956b9bc88d.png&thumbnail=650x2147483647&quality=80&type=jpg

观察json文件的结构,公交线路有两个内容Object。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F6eea1c6160264bf2bedbfd6725b0de00.png&thumbnail=650x2147483647&quality=80&type=jpg

buslines字段里,第一个元素是下行,第一个元素是上行。上下行的区分,好像是朝向火车站开的为上行,背离火车站方向的为下行,如果错误,请指正。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fd9087f79d1484d5e81cc1bbbb5c7844a.png&thumbnail=650x2147483647&quality=80&type=jpg

根据不同的字段,获取公交线路上下行所属公司company、长度distance、线路名name、总价total_price和类型type。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F760908712e38410fa627bd6fa406614b.png&thumbnail=650x2147483647&quality=80&type=jpg

获取下行公交线路的函数,第9行判断下线路名是否为空,为空就跳过pass了。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fdd318341237a430bbeb5050f7413c0a5.png&thumbnail=650x2147483647&quality=80&type=jpg

格式化函数format,把第一个参数城市名city替换为绿色箭头所指位置,把第二个参数公交线路名line替换为蓝色箭头所指位置,组成新的url。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F1dba60809b9243dea33a524ac152c1d1.png&thumbnail=650x2147483647&quality=80&type=jpg

获取上行公交线路的函数,把0改为1就是上行。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fef0554ea16f8477b9ebfddd1776204ef.png&thumbnail=650x2147483647&quality=80&type=jpg

也可以组合在一起获取。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F4a5fe38f576248f99465409a5a36a709.png&thumbnail=650x2147483647&quality=80&type=jpg

测试下,看能否正常执行。

三、获取城市所有公交线路的信息

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2Fd422bad62738459a99d1c8b53deb57de.png&thumbnail=650x2147483647&quality=80&type=jpg

第2行的lines来自第一部分,第5行的函数get_line_down来自第二部分。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F08%2F04%2F5656c24bcdb1486b80d7e5efd1ac7925.png&thumbnail=650x2147483647&quality=80&type=jpg

实际上,前两个为空值,有效公交线路为644条。

结尾

1. 公交线路上下行长度不一样。

2. 公交线路上下行所属的公司有可能不一样。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值