Python爬虫|高德地图地铁数据爬取与制图
目录
- 一.高德地图数据爬取
- 1.爬取思路
- 2.python核心代码
- 二.Arcmap制图
一.高德地图数据爬取
1.爬取思路
首先,谷歌浏览器打开高德地图官网,点击上方菜单栏地铁进入地铁线路网站如下,点击进入官网:
按F12或右击检查进入调试页面,点击Network选项。在网页上先点击西安,可以发现箭头2出新增两行响应信息,鼠标左击可以发现箭头3处出现真实的请求地址等信息。
复制请求URL地址(http://map.amap.com/service/subway?_1612234237437&srhdata=6101_drw_xian.json),在浏览器新页面打开可以看见返回的是json数据,里面包含了各线路站点信息,正是我们想要的。
可以复制json数据在json在线验证网站上进行分析,以便于后续解析数据(点击进入解析网站)。如下图所示,显示的是1号线沣河森林公园站的相关信息:中文名称、经纬度(应该是火星坐标系?)、拼音名称等。
我们通过python爬虫爬取各线路各站点的名称、经纬度信息,导出到文本文件,以供后续使用。
2.python核心代码
获取网页内容
def getHtml(url):user_agent = random.choice(USER_AGENTS)headers = {"Host":"map.amap.com",'User-Agent': user_agent}try:response = requests.get(url, headers=headers)#print(response.url)text = response.contentreturn textexcept:print("爬取失败!")
解析json数据
def parse_page(text):lines_list = json.loads(text).get('l')# 地铁线路信息表lineInfo_list = []for line in lines_list:#每条线的信息集合lineInfo = {}lineInfo['ln'] = line.get('ln')print(lineInfo['ln'])#线路站点列表station_list = []st_list = line.get('st')for st in st_list:station_dict = {}station_dict['name'] = st.get('n')coord = st.get('sl')station_dict['lat'] = coord.split(',')[0]station_dict['lon'] = coord.split(',')[-1]print("站名称:", station_dict['name'])print("经度:", station_dict['lat'])print("纬度:", station_dict['lon'])station_list.append(station_dict)#passprint('-----------------------------------')lineInfo['st'] = station_listlineInfo['kn'] = line.get('kn')lineInfo['ls'] = line.get('ls')lineInfo['cl'] = line.get('cl')lineInfo_list.append(lineInfo)#返回各线路信息列表return lineInfo_list
保存站点数据(站名称、经纬度)
def save_file(filename, lineInfo):#print("开始写入文件......")with open(filename, 'a', encoding='utf-8') as f:for st in lineInfo['st']:f.write(st['name'] + " " + st['lat'] + " " + st['lon'] + "\n")#print("写入文件完成!")
爬取完成后,生成的数据如下:
二.Arcmap制图
思路:调用Arcpy函数生成shp文件-——>点转线——>设置符号样式——>导出图片。
完整代码请点击
如下图所示属于自己的地铁线路图就制作完成了。图片估计上传后就不是原图了,又会变模糊,但是实际看起来还是比较清楚的。
更多精彩内容,请关注我的微信公众号,期待与你共同进步!
Python爬虫|高德地图地铁数据爬取与制图相关推荐
- python爬虫实例——某二手车数据爬取
某二手车网站数据爬取 要求: 找到所要爬取的网站网址(url): 今天案例的网址(url):https://www.guazi.com/gy/dazhong/o1/#bread. 观察网站,点开检查, ...
- python爬虫案例-陶瓷公司数据爬取
用requests爬取要注意HTTPConnectionPool(host=xxx, port=xxx): Max retries exceeded with url...异常,出现这个异常的解决方法 ...
- Python爬虫 —— 以北京天气数据爬取为例
本文以北京天气为例讲解数据爬取的整个流程,不涉及网络爬虫的原理,直接讲爬取代码怎么写! 1.首先找到你要爬取的网站url:'http://www.tianqihoubao.com/lishi/beij ...
- Python爬虫应用实战-网站数据爬取及数据分析
实战一:中国大学排名 前言 由于上一篇文章中教会了大家如何存储数据,但是由于篇幅过大,就没有加入实战篇.想必大家也等着急了吧,所以今天就为大家带来两篇实战内容,希望可以帮助到各位更好的认识到爬虫与My ...
- Python爬虫之淘宝数据爬取(商品名称,价格,图片,销量)
代码详细注释,仅供交流与参考,不作商业用途 代码参考北京理工大学嵩天老师 import requests #导入第三方库 import re import osdef getHTMLText(url) ...
- Python 爬虫实战,模拟登陆爬取数据
Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...
- 高德地图交通态势爬取并存入MySQL数据库
高德地图交通态势爬取并存入mysql数据库 高德地图交通态势开放api链接: 高德交通态势 高德地图交通态势使用流程: 第一步,申请"Web服务API接口"密钥(Key): 第二步 ...
- 【应用】Python利用高德地图经纬度数据绘制定位
[应用]Python利用高德地图经纬度数据绘制定位 一. 背景 二. 获取API 1. 注册高德开放平台个人开发者 2. 获取key 三. 具体步骤 1. 库的导入 2. 根据地址获取经纬度 3. 绘 ...
- python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取
Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...
最新文章
- stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验
- 推送:腾迅信鸽 VS Bmob
- 菜鸟学Linux 第052篇笔记 httpd-install and section2
- android 键盘 能复制,android – 从EditText中禁用软键盘,但仍允许复制/粘贴?
- C++远航之封装篇——深拷贝、浅拷贝
- System.gc()与Object.finalize()的区别
- pandas Series归一化
- [swift] LeetCode 234. Palindrome Linked List
- Windows Mobile 5.0新增API介绍(转自MSDN)
- Android第一个程序Say Hello To Android
- Java 下一代: Groovy、Scala 和 Clojure
- V4L2像素格式及其对应的含义
- win10 实现远程连接linux系统
- javascript编写1加到100函数
- 服务器数据库只读怎么修改权限,设置mysql数据库为只读权限
- 墨尔本计算机读研申请条件,墨尔本大学计算机硕士申请条件
- 《圈外课程学习记录》3.1 数据化汇报展示
- html母亲节主题网页源码jd
- MongoDB3.4 根据中文拼音给中文排序
- Neo4j中的OGM(Object Graph Mapping)类似于ORM(对象关系映射)