当前位置: 首页 > news >正文

利用Python爬取高德地图全国地铁站点信息

利用Python中的requests库进行地铁站点信息的获取,同时将数据保存在本机excel中

# 首先引入所需要的包
import requests
from bs4 import BeautifulSoup
import pandas as pd
import json# 发送 GET 请求获取网页内容
url = 'http://map.amap.com/subway/index.html'
response = requests.get(url)
# 第一步:爬取两个 div 中的城市数据(包括 ID 和拼音),生成城市集合
if response.status_code == 200:# 解码response_content = response.content.decode('utf-8')# 使用 Beautiful Soup 解析网页内容soup = BeautifulSoup(response_content, 'html.parser')# 从这里开始,你可以使用 Beautiful Soup 对象(soup)来提取所需的信息# 例如,查找标题title = soup.title# 通过Beautiful Soup来找到城市信息元素,并提取这个元素的信息for soup_a in soup.find('div', class_='city-list fl').find_all('a'):city_name_py = soup_a['cityname']city_id = soup_a['id']city_name_ch = soup_a.get_text()city_info_list.append({'name_py': city_name_py, 'id': city_id, 'name_ch': city_name_ch})# 获取未显示出来的城市列表for soup_a in soup.find('div', class_='more-city-list').find_all('a'):city_name_py = soup_a['cityname']city_id = soup_a['id']city_name_ch = soup_a.get_text()city_info_list.append({'name_py': city_name_py, 'id': city_id, 'name_ch': city_name_ch})print(city_info_list)
else:print("无法获取网页内容")for city_info in city_info_list:city_id = city_info.get("id")city_name = city_info.get("name_py")city_name_ch = city_info.get("name_ch")print("开始爬取城市" + city_name_ch + "的数据")city_lines_list = []# 第二步:遍历城市集合,构造每一个城市的 url,并下载数据# 构造每个城市的urlurl = "http://map.amap.com/service/subway?_1717380520536&srhdata=" + city_id + '_drw_' + city_name + '.json'res = requests.get(url)content = res.content.decode('utf-8')# 将内容字符串转换成json对象content_json = json.loads(content)# 提取该城市的所有地铁线listline_info_list = content_json.get("l")# 第三步:开始处理每一个地铁线,提取内容到dataframe中for line_info in line_info_list:# 地铁线名字line_name = line_info["kn"]# 处理地铁线站点df_per_zd = pd.DataFrame(line_info["st"])df_per_zd = df_per_zd[['n', 'sl', 'poiid', 'sp', 't', 'su', 'sid']]df_per_zd['gd经度'] = df_per_zd['sl'].apply(lambda x: x.split(',')[0])df_per_zd['gd纬度'] = df_per_zd['sl'].apply(lambda x: x.split(',')[1])df_per_zd.drop('sl', axis=1, inplace=True)df_per_zd['路线名称'] = line_info['ln']df_per_zd['城市名称'] = city_name_chdf_per_zd.rename(columns={"n": "站点名称", "poiid": "POI编号", "sp": "拼音名称", "t": "换乘标志 1:换乘,0:不可换乘", "su": "su", "sid": "sid编号"}, inplace=True)# 先将这条地铁线处理过的dataframe存起来,我们后面给他放到一张表里city_lines_list.append(df_per_zd)# 这段代码就是将地铁线数据列表聚合到一张表里,形成每个城市的地铁站数据city_subway_data = pd.concat(city_lines_list, ignore_index=True)# 第四步:将处理好的文件保存为xlsxcity_subway_data.to_excel(city_name_ch + '.xlsx', sheet_name='Sheet1')

相关文章:

利用Python爬取高德地图全国地铁站点信息

利用Python中的requests库进行地铁站点信息的获取,同时将数据保存在本机excel中 # 首先引入所需要的包 import requests from bs4 import BeautifulSoup import pandas as pd import json# 发送 GET 请求获取网页内容 url http://map.amap.com/subway/index.html response r…...

Vue 3 中的 Teleport 特性详解

引言 在 Vue 3 中,引入了一个名为 Teleport 的新特性。这个特性允许开发者将组件的子组件“传送”到 DOM 中的任意位置,而不仅仅是它们的直接父级内部。这一功能在处理如模态框、弹出菜单、提示框等需要从其原始位置在视觉上移动到其他地方的用户界面元…...

小白的matlab简单应用

基本概念 1、数组array 数组是一个更通用的数据结构,可以是一维、二维或多维的。 一维数组通常被称为向量。 二维数组可以被视为矩阵。 多维数组可以用来表示更高维度的数据,例如三维数组可以表示一系列的矩阵。 用过的函数 20240229 1、读取excel文件…...

边缘计算网关在机床生产中的应用-天拓四方

随着工业4.0的推进,物联网(IoT)技术在各个工业领域中的应用日益广泛。特别是在机床行业,物联网技术的引入不仅提高了生产效率,还实现了对机床设备的实时监控和远程维护。在这一背景下,边缘计算网关的角色愈…...

maven配置文件(一)Settings配置

一、仓库 1、关系 我们依赖的外部服务是需要有地方进行存储的,而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。 (1)本地仓库 当项目在本地编译或运行时,直接加载本地的依赖服务无疑是最快的。默…...

选择何种操作系统作为网站服务器

选择操作系统时,需考虑稳定性、安全性、成本、兼容性和技术支持等因素,常见选项有Windows Server和Linux发行版。 选择网站服务器的操作系统是一个关键的决策,因为它将影响到网站的性能、稳定性、安全性以及未来的扩展性,目前市场…...

【LeetCode】升级打怪之路 Day 11:栈的应用、单调栈

今日题目: Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1:栈 - “先进后出”的应用LC 155. 最…...

题目 1454: 蓝桥杯历届试题-蚂蚁感冒

题目描述: 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁…...

WP外贸营销型网站模板

WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题,适合时尚服装行业搭建wordpress企业官网使用。 零件配件WordPress外贸建站模板 汽车行业零配件WordPress外贸建站模板,卖配件、零件的外贸公司可以使用的WordPress主题。 https://www.jia…...

Linux获取进程(系统启动时间和运行时间)运行时间

Linux获取进程运行时间 思路:使用 ps - o命令 ps -p 986 -o etime可以获取进程986的执行时间,不论系统时间有没有发生改变,它都可以返回正确的结果: 总结:etime 是真正的程序运行时间,而不是系统运行时间与进程启动…...

服务器内部错误的原因

服务器内部错误的原因 软件问题。服务器上运行的软件可能存在程序错误、内存泄漏、配置错误等,这些错误可能导致服务器崩溃、服务无法正常运行或响应时间过长 硬件故障。服务器的硬件组件(如处理器、内存、硬盘等)可能会因故障或损坏而无法正…...

不愧是华为的,太厉害了。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 实习去了博彦科技(外包),做的…...

贪心算法(区间问题)

452. 用最少数量的箭引爆气球 题目(求无重复区间) 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着…...

【Javascript】设计模式之策略模式

文章目录 1、使用策略模式计算奖金2、JavaScript 版本的策略模式3、应用:表单验证3.1 用策略模式进行表单验证3.2 给某个文本输入框添加多种校验规则 4、策略模式的优缺点 策略模式的定义是:定义一系列的算法,把它们一个个封装起来&#xff0…...

vue面试题:如何保存页面的当前的状态?

如何保存页面的当前的状态? 既然是要保持页面的状态(其实也就是组件的状态),那么会出现以下两种情况:组件会被卸载:(1)将状态存储在LocalStorage / SessionStorage优点:缺…...

Java的编程之旅34——Interger包装类

1.API简介 Java的API(Application Programming Interface,应用程序编程接口)是一组提供给程序员使用的代码库,用于开发Java应用程序。Java的API包括了各种类和接口,用于处理输入输出、图形用户界面、网络通信、数据库…...

C# Winform画图绘制圆形

一、因为绘制的圆形灯需要根据不同的状态切换颜色,所以就将圆形灯创建为用户控件 二、圆形灯用户控件 1、创建用户控件UCLight 2、设值用户控件大小(30,30)。放一个label标签,AutoSize为false(不自动调整大小),Dock为Fill(填充),textaglign为居中显示。 private Color R…...

Unity(第十六部)声音和视频

声音 1、听声音 创建相机的时候,相机自带Audio Listener 多个相机的时候,我们只保留一个Audio Listener就可以 2、声音源,环境音 添加Audio Source就行中文叫声音源 3、脚本执行的声音 using System.Collections; using System.Collection…...

Linux(CentOS)学习

一、认识Linux 1、如何修改Linux时区 2、配置固定IP 3、重启网络服务 3、小技巧快捷键 4、环境变量设置 5、Linux文件的上传和下载 6、压缩和解压 二、基础命令 1、目录命令 (1、)查看目录内容(ls) 1、ls //查看当前目录内容 2、- a //显示隐藏内容 3…...

HTML最强入门学习笔记+GitHub小项目源码

HTML学习笔记 GitHub项目链接: 点我跳转GitHub 本博客采用markdown编写&#xff0c;上面这个链接跳转就是采用了html的<a></a>的代码设计的跳转提示~ 1.创建文件可以使用 ! 在VSCode中进行快速补全从而生成一整个HTML结构 HTML组成 <!DOCTYPE html><htm…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...