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

蜜月是新婚之后的首先件盛事,看着恋人们把主流线路都走了五次,你会不会起来考虑,蜜月旅行还有怎样新花样?避开满眼的海岛、沙滩、情趣内裤和喧闹的人群,这个冷门却足足漂亮纯粹的蜜月胜地,一定能让你拥有最轻薄的记念。

  附上博主的解析函数:

大英帝国-苏格兰湖区

引进理由:散文家的家门

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

英格兰湖区位居苏格兰西阿拉弗拉海岸,靠近英格兰地界,大英帝国人称之为“自己的后花园”。湖区拥有苏格兰最高峰斯科菲(科菲)峰和最大的湖温德Mill湖,如若用湖光山色来形容,是最适用然则的了。在林地、突岩、山谷与湖水之间,是农场、牧地、中世纪村庄和城建,年久风化的石篱和桥身,老旧的泥土道路,吐弃的石墨矿场,漫步其间,仿佛是走在古旧的人类风景画中。

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

湖区是英帝国人的心灵之乡,有名的浪漫主义小说家沃兹华斯(华兹沃斯)曾长时间居留在此间,女小说家比阿特丽克斯·波特(Beatrix
Potter)也守着这片美观的大湖过了大半生,在湖畔写出了享誉的童话《彼得(彼得)兔的故事》。作家和思想家为这片漂亮的土地披上了嗲声嗲气的外衣,和恋人牵手走在湖边清幽的便道上,连呼吸都变得幸福起来。

Tips:

英格兰湖区一年中最美的时间是5-3月,且天气晴朗少雨,非凡适合旅行。另外的好音讯是苏格兰将延续留在联合王国内,可以穿越湖区顺路到成都和英格兰高地看望,细细品味英伦风情。

  紧要爬取代码如下,其实也很简单,主函数如下。首先需要构建传入的参数,紧要的牢笼路线名称,城市编码,地理范围,缩放尺度。地理范围可以由此坐标拾取器获取,参数经url编码后,发送请求,判断重回数据是否符合要求(注:可能该线路地图上停运或不存在,也可能是访问速度过快,反爬虫机制亟待人工验证,博主爬取的时候遭受过,所将来面设置了任性休眠)。接下来,就是解析json数据了。代码中的extratStations和extractLine,就是领取需要的字段,怎样,是不是很粗略。最终,就是保存了,站点和途径分别存储。

阿联酋-迪拜

推荐理由:蜜月的热心肠燃烧了全套沙漠

<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;

白日本着东京(Tokyo)的海岸线前行,香水之都塔、棕榈岛和帆船宾馆皇室般的奢靡,散发着深入的伊斯兰风格和极尽奢华的魅力。而当夕阳西下,去沙漠里感受浩瀚无垠,这种一切尽在不言中静谧是在考验爱人间的心有灵犀。夜晚的香港比白天杰出千倍,在香港河上随着木桅船缓缓前行,水面上倒影着双边溢彩流光的炫目灯火,足以感受的确的铺张浪费。

<img
src=”http://upload-images.jianshu.io/upload\_images/651072-da017c95c528200d.jpg"&gt5588葡京线路,;

用作世界一流的免税购物天堂,时尚之都有着太多新人们爱逛的一级名牌,众多的购物广场一定可以迷乱了你的眼眸。而在久负闻名的黄金和香精市场里,隔着干净的玻璃窗,黄金制成各样装饰品整齐地排列在柜台上,在日光的映照下,光彩耀人。

Tips:

四月至次年十一月,是新加坡的出境游旺季,平均气温7-20℃。特别是新年最先的日本首都气候宜人、阳光和煦,正是丰裕了然当地风情的黄金时间。阿联酋是伊斯兰江山,出游时索要特别注意当地的乡规民约禁忌。

  城市公交、地铁数量反映了城市的公共交通,探讨该数量足以开掘城市的直通协会、路网规划、公交选址等。然而,那类数据往往了解在一定部门中,很难得到。互联网地图上有大量的音信,包含公交、地铁等数据,解析其数量反映格局,可以透过Python爬虫采集。闲言少叙,接下去将详细介绍如何使用Python爬虫爬取城市公交、地铁站点和数量。

美利坚同盟国-优胜美地国家公园

推荐理由:来这边度过一个离家喧嚣的平静夜晚

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

优胜美地国家公园坐落在United States马里兰州中间的马里兰山脉,以排山倒海壮丽的花岗岩山峰、巨大的杉林、清澈的溪水和瀑布著称。

优胜美地河谷是地球上最蔚为壮观的河谷之一,蜿蜒的梅塞德河贯穿其间,潺潺的瀑布流水和陡峭的山崖,形成了极度绮丽动人的光景。

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

当你在林间漫步,穿过高大的红杉,偶尔擦身而过的浣熊和野鹿,也会吸引你们的注意力。你们可以在低谷的驻地中走过一个释然的夜间,在日出日落时分,感受山谷的秘闻气氛。为啥苹果新的桌面系统要以优胜美地命名吧,来到这里,你自有答案。

Tips:

优胜美地国家公园一年四季都很吻合游览,但年年的八四月正值加州旱季,美景会略有折扣。能够挑选台北+优胜美地花园+一号公路+多伦多+多哥洛美,美利坚联邦合众国西岸自驾的经文线路。

 5588葡京线路 1

台湾-花莲

引进理由:北冰洋的海风平素在吹

<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;

而当您面朝印度洋,耳边总会不自觉响起Hood夫的这首《印度洋的风》。印度洋的风一向在吹,穿梭着姣好的海峡上,吹上延绵无穷的海岸。而有你在身边,就再好但是了。

Tips:

湖南的特等观光季节是9-3月,避开了强风,亚热带季风气候在春日不行赏心悦目。假诺时光丰硕,一定要慢悠悠环岛一圈,在甘肃租车需要国际驾照,旅行包车会是不错的精选。

  本篇博文为博主原创,转载请声明。

肯尼亚-莱比锡马拉国家珍重区

引进理由:在赤道线许愿与自然共舞

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

莱比锡马拉国家珍重区位于肯尼(肯尼(Kenny))亚与坦桑尼亚交界地区,动物序列见惯司空,约有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:

历年12月份刚刚是麦德林马拉动物大迁徙的时令,且刚刚避开雨季,气候舒适宜人,是肯尼(Kenny)亚漫游旺季。肯尼(肯尼(Kenny))亚百姓热情友善,当地旅游交通保加卡托维兹语,普通亚洲人更爱好说本民族的斯瓦希里语。要是您能学多少个简易的单词,会即时拉近与北美洲朋友的心境。

5588葡京线路 2

5588葡京线路 3

5588葡京线路 4

  以图吧公交为例,点击某一公交后,出现该路公交的详尽站点新闻和地图新闻。博主顿感兴奋,觉得立时快要成功了,各个抓包,发现并不可能分析。可能博主技术所限,如有大神能从中抓到站点和线路的坐标新闻,请不宁赐教。这TM就令人根本了呀,到嘴的肥肉吃不了。

  地图API可以,那么通过地图抓包吗?打开某图主页,间接输入某市公交名称,通过抓包,成功找到站点和线路音讯。具体抓包音讯如下图所示,busline_list中详细列出了站点和路线的音讯,其中有两条,是一致趟公交不同倾向的数量,略有差异,需注意。找到入口过后,接下去爬虫就要大显身手了。

  以下是某一条公交站点和路线的拍卖后的数据显示。由于不同的地图商采取不同的坐标系,会有例外档次的过错,需要坐标纠偏。下一步,博主将详细介绍怎样批量将这多少个站点和坐标举办坐标纠正和矢量化。

  天无绝人之路,尝试找找某地图的API,发现可以调用,通过分析,可以找到该数据的后台地址。熟习前端的可以尝试,博主前端也就只会个hello
world,不献丑了。这是一种思路,实践注明是可以的。

  爬虫采集原始数据如下:

5588葡京线路 5

 

  首先,爬取商量城市的有着公交和地铁线路名称,即XX路,地铁X号线。可以因而图吧公交、公交网、8684、本地宝等网站取得,该类网站提供了按数字和字母划分类此外祖父交线路名称。Python写个大概的爬虫就能募集,可参看WenWu_Both的篇章,博主详细介绍了什么拔取python爬取8684上某都会拥有的公交站点数据。该博主采集了站点详细的消息,包括,然而缺少了公交站点的坐标、公交线路坐标数据。这就令人抓狂了,没有空间坐标怎么落图,怎么分析,所以,本文重点介绍的是站点坐标、线路的拿到。

5588葡京线路 6

 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
 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