Python爬虫——城市公交、地铁站点和路数量搜集

蜜月凡是新婚之后的率先桩大事,看在恋人等拿主流线路还倒了同全体,你晤面不见面起来考虑,蜜月旅行还有什么样新花样?避开满眼的海岛、沙滩、比基尼和喧嚣的人群,这些冷门却够美丽纯粹的蜜月胜地,一定能够为您富有极妖媚的想起。

  本篇博文也博主原创,转载请注明。

美国-优胜美地国家公园

推介理由:来此处过一个背井离乡喧嚣的平静夜晚

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-b51f4fa5d2128723.jpg"&gt;

优惠美地国家公园坐落在美国加利福尼亚州中间的内华达山脉,以排山倒海壮丽的花岗岩山峰、巨大的杉林、清澈的溪流和瀑布著称。

优胜美地河谷是地上无与伦比蓝为壮观之沟谷之一,蜿蜒的梅塞德河贯通其中,潺潺的瀑布流水和陡峭的悬崖峭壁,形成了老绮丽动人的景观。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-ca02c4b1c69a0863.jpg"&gt;

当你在林间漫步,穿过高大的红杉,偶尔擦身而过的浣熊和野鹿,也会引发你们的注意力。你们好于谷底的基地中度过一个平静的夜晚,在日出日落时分,感受山谷的私气氛。为什么苹果新的桌面系统如坐优胜美地命名也,来到这里,你从发生答案。

Tips:

优化美地国家公园一年四季都怪吻合游览,但年年的八九月正值加州旱季,美景会稍发折扣。可以挑选旧金山+优胜美地花园+一哀号公路+洛杉矶+拉斯维加斯,美国西岸自驾的经线路。

  城市公交、地铁数量体现了都会的公共交通,研究该数额足以挖城市的畅通组织、路网规划、公交选址等。但是,这好像数据往往掌握在特定机构被,很为难获。互联网地图上生大量的音讯,包含公交、地铁等数据,解析其数量反馈方式,可以通过Python爬虫采集。闲言少叙,接下将详细介绍如何使用Python爬虫爬取城市公交、地铁站点和数据。

肯尼亚-马赛马拉国家保护区

推荐理由:在赤道线许愿与自然共舞

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-8328d66d63070cac.jpg"&gt;

马赛马拉国度保护区位于肯尼亚与坦桑尼亚分界地区,动物种类层出不穷,约产生95着哺乳动物和450种鸟类,是社会风气上极度好的野生动物保护区之一。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-b184317498e51b0c.png"&gt;

怎去到肯尼亚后底旅行者基本上成了动物保护主义者和环保主义者?在马赛马拉国保护区,置身广袤无际的非常草原,向天的动物朋友等咨询好,似乎会于心灵带来同样种植进步的力量,感受及地母亲脉搏的跳动。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-665dd23c44b2fd15.jpg"&gt;

肯尼亚自然保护区众多,拥有无限具特点的非洲景致,还有有不利的小吃摊会见打在赤道线上,很吻合亲密朋友在此许下誓言。

Tips:

每年7月份恰巧是马赛马拉动物十分动迁徙的时令,且刚刚避开雨季,气候舒适宜人,是肯尼亚旅游旺季。肯尼亚老百姓好客友好,当地旅游交通英语,普通非洲口再次爱好说按民族的斯瓦希里语。如果您能效仿几独简单的单词,会即刻拉近和非洲朋友的情愫。

  首先,爬取研究城市之拥有公交与地铁线名称,即XX路,地铁X号线。可以由此图吧公交、公交网、8684、本地宝等网站取得,该类网站提供了照数字与字母划分类别的公交线路名称。Python写单大概的爬虫就能募集,可参照WenWu_Both的篇章,博主详细介绍了怎么使python爬取8684达某都有所的公交站点数据。该博主采集了站点详细的音讯,包括,但是缺少了公交站点的坐标、公交线路坐标数据。这便吃人抓捕狂了,没有空间坐标怎么抱图,怎么分析,所以,本文重点介绍的凡站点坐标、线路的获取。

英国-英格兰湖区

引进理由:诗人的故园

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-851f2d5bd4e90b5f.jpg"&gt;

英格兰湖区放在英格兰西北海岸,靠近苏格兰际,英国人数叫做“自己之后花园”。湖区拥有英格兰嵩峰斯科菲峰以及太老之湖温德米尔湖,若是用湖光山色来写,是绝方便不过的了。在林地、突岩、山谷和湖水里,是农场、牧地、中世纪村庄和城建,年久风化的石篱和桥身,老旧的泥土道路,废弃的石墨矿场,漫步其间,仿佛是移动以古旧的人类风景写生被。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-a359bcef52e3ac49.jpg"&gt;

湖区是英国人的心灵之乡,著名的浪漫主义诗人沃兹华斯(Wordsworth)曾长期居留在此,女作家比阿特丽克斯·波特(Beatrix
Potter)也驶近着就片美丽的大湖过了大半生,在湖畔刻画有了知名的童话《彼得兔的故事》。诗人和作家也及时片美丽的土地披上了浪漫之门面,和情人带手走以湖边清幽的羊肠小道上,连呼吸还转移得福起来。

Tips:

英格兰湖区一样年被极美的流年是5-6月,且天气晴朗少雨,十分切旅行。另外的好信息是苏格兰拿继承留于联合王国内,可以穿越湖区顺路到爱丁堡同苏格兰高地探访,细细品味英伦风情。

阿联酋-迪拜

推介理由:蜜月的热心肠燃烧了整个沙漠

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-8a731dd8fa74543a.jpg"&gt;

直插云霄的前程谢建筑,纸醉金迷的奢华酒店,热情如火的大漠腹地……欢迎来到迪拜,一个似真亦幻之地方。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-215d97127c1f8af4.jpg"&gt;

白天沿迪拜的海岸线前实行,迪拜塔、棕榈岛跟帆船酒店皇室般的奢华,散发着浓郁的清真风格和极尽奢华之魅力。而当夕阳西下,去沙漠里感受浩瀚无垠,那种一切尽在不言中静谧是在考验爱人间的心有灵犀。夜晚底迪拜比白天好好千倍增,在迪拜河齐就木桅船缓缓前履行,水面及倒影着双边溢彩流光的灿烂灯火,足以感受的确的奢华。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-da017c95c528200d.jpg"&gt;

用作世界超级的免税购物天堂,迪拜有着极其多新人们好逛的五星级名牌,众多之购物广场一定得迷乱了公的眼眸。而当久负盛名的金与香精市场里,隔在干净的玻璃窗,黄金制成各种装饰整齐地排列在柜台及,在太阳之投下,光彩耀人。

Tips:

11月至次年4月,是迪拜的漫游旺季,平均气温7-20℃。特别是新年伊始的迪拜气候宜人、阳光和温暖,正是充分理解当地风情的黄金时间。阿联酋是伊斯兰邦,出游时要特别注意当地的乡规民约禁忌。

  因图吧公交为条例,点击某一样公交后,出现该路公交的详实站点信息以及地图信息。博主顿感兴奋,觉得就将打响了,各种抓包,发现并无克分析。可能博主技术所界定,如发生大神能从中抓及站点与路的坐标信息,请无宁赐教。这TM就受人彻底了啊,到嘴的肥肉吃不了。

台湾-花莲

引进理由:太平洋底海风一直于吹

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-a1642990f3a3b7ca.jpg"&gt;

设若点的目的地为你感到有点老,那台湾势必是独好选。而如果要挑一个地方代表台湾,最宜的或是不是台北,不是垦丁,而是花莲。

花莲县大凡台湾原住民居住密度最深的地方,拥有着异样之原来住民文化。如果你来花莲,到七星潭羁押太平洋,太鲁阁看大自然鬼斧神工,花东纵谷看百花盛放,瑞穗牧场尝纯自然放心奶,花莲夜市吃地道台湾味,还有夏季出海去观鲸,是一致水轻松又幸福之途中。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-445d398e5c6281c7.jpg"&gt;

假若当您面朝太平洋,耳边总会不自觉响起胡德夫的那篇《太平洋之民歌》。太平洋底民谣一直当吹,穿梭在漂亮的海峡上,吹上延绵无穷的海岸。而起您当身边,就再好不过了。

Tips:

台湾底特级游览季节是9-11月,避开了台风,亚热带季风气候在秋季十二分舒适。如果时间充足,一定要磨磨蹭蹭悠悠环岛一圈,在台湾租车得国际驾照,旅行包车会是没错的选料。

  天无绝人之路,尝试寻找找某地图的API,发现可以调用,通过分析,能够找到该数额的后台地址。熟悉前端的足试试,博主前端也就算只见面只hello
world,不孝敬丑了。这是同一栽思路,实践证明是可的。

  地图API可以,那么通过地图抓包吗?打开某贪图主页,直接输入某市公交名称,通过抓包,成功找到站点和路线信息。具体抓包信息一旦下图所出示,busline_list中详尽列有了站点以及线路的信息,其中起些许漫长,是同等道公交不同方向的数码,略有差距,需注意。找到入口过后,接下去爬虫就如大显身手了。

  主要爬取代码如下,其实呢异常简短,主函数如下。首先得构建传入的参数,主要的包路线名称,城市编码,地理范围,缩放尺度。地理范围可透过坐标拾取器获取,参数经url编码后,发送请求,判断返回数据是否符合要求(注:可能该线地图及停运或者不有,也可能是访问速度过快,反爬虫机制亟待人工验证,博主爬取的时遇到过,所以后面设置了自由休眠)。接下来,就是解析json数据了。代码中的extratStations和extractLine,就是领取需要之字段,怎么样,是免是大粗略。最后,就是保存了,站点和路径分别存储。

 1 def main():
 2     df = pd.read_excel("线路名称.xlsx",)
 3     BaseUrl = "https://ditu.amap.com/service/poiInfo?query_type=TQUERY&pagesize=20&pagenum=1&qii=true&cluster_state=5&need_utd=true&utd_sceneid=1000&div=PC1000&addr_poi_merge=true&is_classify=true&"
 4     for bus in df[u"线路"]:
 5         params = {
 6             'keywords':'11路',
 7             'zoom': '11',
 8             'city':'610100',
 9             'geoobj':'107.623|33.696|109.817|34.745'
10         }
11         print(bus)
12         paramMerge = urllib.parse.urlencode(params) 
13         #print(paramMerge)
14         targetUrl = BaseUrl + paramMerge
15         stationFile = "./busStation/" + bus + ".csv"
16         lineFile = "./busLine/" + bus + ".csv"
17         
18         req = urllib.request.Request(targetUrl)
19         res = urllib.request.urlopen(req)
20         content = res.read()
21         jsonData = json.loads(content)
22         if (jsonData["data"]["message"]) and jsonData["data"]["busline_list"]:
23             busList = jsonData["data"]["busline_list"] ##busline 列表
24             busListSlt = busList[0] ## busList共包含两条线,方向不同的同一趟公交,任选一趟爬取
25             
26             busStations = extratStations(busListSlt)
27             busLine = extractLine(busListSlt)
28             writeStation(busStations, stationFile)
29             writeLine(busLine, lineFile)
30             
31             sleep(random.random() * random.randint(0,7) + random.randint(0,5)) #设置随机休眠
32         else:
33             continue

  附上博主的解析函数:

 1 def extratStations(busListSlt):
 2     busName = busListSlt["name"]
 3     stationSet = []
 4     stations = busListSlt["stations"]
 5     for bs in stations:
 6         tmp = []
 7         tmp.append(bs["station_id"])
 8         tmp.append(busName)
 9         tmp.append(bs["name"])
10         cor = bs["xy_coords"].split(";")
11         tmp.append(cor[0])
12         tmp.append(cor[1])
13         wgs84cor1 = gcj02towgs84(float(cor[0]),float(cor[1]))
14         tmp.append(wgs84cor1[0])
15         tmp.append(wgs84cor1[1])
16         stationSet.append(tmp)
17     return stationSet
18 
19 def extractLine(busListSlt):
20     ## busList共包含两条线,备注名称
21     keyName = busListSlt["key_name"]
22     busName = busListSlt["name"] 
23     fromName = busListSlt["front_name"]
24     toName = busListSlt["terminal_name"]
25     lineSet = []
26     Xstr = busListSlt["xs"]
27     Ystr = busListSlt["ys"]
28     Xset = Xstr.split(",")
29     Yset = Ystr.split(",")
30     length = len(Xset)
31     for i in range(length):
32         tmp = []
33         tmp.append(keyName)
34         tmp.append(busName)
35         tmp.append(fromName)
36         tmp.append(toName)
37         tmp.append(Xset[i])
38         tmp.append(Yset[i])
39         wgs84cor2 = gcj02towgs84(float(Xset[i]),float(Yset[i]))
40         tmp.append(wgs84cor2[0])
41         tmp.append(wgs84cor2[1])
42         lineSet.append(tmp)
43     return lineSet

  爬虫采集原始数据如下:

  以下是某个同长条公交站点和路的处理后的多寡显示。由于不同之地图商采用不同的坐标系,会出异程度之病,需要坐标纠偏。下同样步,博主将详细介绍如何批量用这些站点与坐标进行坐标纠正和矢量化。