700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【爬虫】Python爬虫实战 Python实现中国地铁数据可视化arcmap

【爬虫】Python爬虫实战 Python实现中国地铁数据可视化arcmap

时间:2021-08-14 02:54:09

相关推荐

【爬虫】Python爬虫实战 Python实现中国地铁数据可视化arcmap

临近过年,无心上班,只好摸鱼,偶然看见,这篇文章,觉得有趣,便来写一写

Python爬虫实战,pyecharts模块,Python实现中国地铁数据可视化_Python_xiaowu的博客-CSDN博客前言利用Python实现中国地铁数据可视化。废话不多说。让我们愉快地开始吧~开发工具Python 版本:3.6.4相关模块:requests模块;wordcloud模块;熊猫模块;numpy模块;杰巴模块;pyecharts模块;matplotlib模块;以及一些Python自带的模块。环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可。本次通过对地铁线路数据的获取,对城市分布情况数据进行可视化分析。分析获取地铁信息/Python_xiaowu/article/details/122563644?utm_medium=distribute.pc_feed_v2.none-task-blog-hot-11.pc_personrecdepth_1-utm_source=distribute.pc_feed_v2.none-task-blog-hot-11.pc_personrec

目录

代码

希望大佬不吝赐教!

先把结果贴上来,分析的后来再讲

不知道为啥高德地铁和我输出出来的地铁不太像,可能是因为上海地铁自带一些创作在里面

代码

# -*- coding: utf-8 -*-from email import messageimport requests as rimport randomimport chardet #需要导入这个模块,检测编码格式import timeimport reimport 坐标转换import csvuser_agent_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1""Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6"]UserAgent = random.choice(user_agent_list)headers = {'user-agent': UserAgent}cityUrl = '/subway/index.html?&1100'pattern_select = pile('.*?<a class="city select".*?id="(.*?)" cityname="(.*?)"', re.S) # 正则表达式提取图片地址pattern = pile('<a class="city".*?id="(.*?)" cityname="(.*?)"', re.S) # 正则表达式提取图片地址pattern_other = pile('.*?<a class="other-city".*?id="(.*?)" cityname="(.*?)".*?', re.S) # 正则表达式提取图片地址cityDict =[]def getCityName(url):html = r.get(url,headers=headers).contentencode_type = chardet.detect(html)html = html.decode(encode_type['encoding']) # 进行相应解码,赋给原标识符(变量)dist = re.findall(pattern_select,html)cityDict.extend(dist)dist = re.findall(pattern,html)cityDict.extend(dist)dist = re.findall(pattern_other,html)cityDict.extend(dist)return cityDictdef getStations():cityDict = getCityName(cityUrl)for item in cityDict:id = item[0]cityname = item[1]stationUrl = '/service/subway?srhdata='+id+'_drw_'+cityname+'.json'# /service/subway?srhdata=3100_drw_shanghai.json_json = r.get(stationUrl,headers=headers).json()info = {'city':'','line':'','station':'','longitude':'','latitude':''}info['city'] = _json['s']for l in _json['l']:info['line'] = l['kn']for st in l['st']:info['station'] = st['n']# latitude and longitudelongitude , latitude =st['sl'].split(',')info['longitude'] , info['latitude'] = 坐标转换.gcj02_to_wgs84(float(longitude), float(latitude))print(info.values())fp.writerow(info.values()),'x'time.sleep(random.uniform(0,0.05))if __name__ == '__main__':header = ['城市','线路','站名','经度','维度']f = open('城市地铁.csv', 'a+',newline='')fp = csv.DictWriter(f, header)fp.writeheader()fp = csv.writer(f)getStations()

希望大佬不吝赐教!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。