基于Dijkstra算法的武汉地铁路径规划!

Python爬虫实战,pyecharts模块,Python实现中国地铁数据可视化 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar 阅读详情

↑↑↑关注后"星标"AI派

每日干货 & 每月组队学习,不错过

 Datawhale干货 

作者:牧小熊,华中农业大学,Datawhale原创作者

AI派在读学生小姐姐Beyonce

Java实战项目练习群

长按识别下方二维码,按需求添加

扫码添加Beyonce小姐姐

扫码关注

进Java学习大礼包

前言

最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划。

1.数据爬取

首先是需要获得武汉各个地铁的地铁站信息,通过爬虫爬取武汉各个地铁站点的信息,并存储到xlsx文件中

武汉地铁线路图,2021最新武汉地铁线路图,武汉地铁地图-武汉本地宝wh.bendibao.com

方法:requests、BeautifulSoup、pandas

import requests
from bs4 import BeautifulSoup
import pandas as pd

def spyder():
    #获得武汉的地铁信息
    url='http://wh.bendibao.com/ditie/linemap.shtml'
    user_agent='Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
    headers = {'User-Agent': user_agent}
    r = requests.get(url, headers=headers)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text, 'lxml')
    all_info = soup.find_all('div', class_='line-list')
    df=pd.DataFrame(columns=['name','site'])
    for info in all_info:
        title=info.find_all('div',class_='wrap')[0].get_text().split()[0].replace('线路图','')
        station_all=info.find_all('a',class_='link')
        for station in station_all:
            station_name=station.get_text()
            temp={'name':station_name,'site':title}
            df =df.append(temp,ignore_index=True)
    df.to_excel('./subway.xlsx',index=False)

我们将爬取的地铁信息保存到excel文件中

如果要做路径规划的话,我们还需要知道地铁站的位置信息

因此我们选择了高德地图的api接口

2.高德地图api接口配置

高德开放平台 | 高德地图 APIlbs.amap.com???? 链接:https://link.zhihu.com/?target=https%3A//lbs.amap.com/%3Fref%3Dhttps%3A//console.amap.com)

首先我们注册账号

选择为个人开发者


填写个人信息...

注册成功后,我们来登陆高德地图api


选择我的应用


创建新应用

选择web服务

这个时候高德地图就给你了一个key

3.得到地铁站的经度和纬度

配置一个get_location函数区访问高德地图的api 然后返回经度和纬度

def get_location(keyword,city):
    #获得经纬度
    user_agent='Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
    headers = {'User-Agent': user_agent}
    url='http://restapi.amap.com/v3/place/text?key='+keynum+'&keywords='+keyword+'&types=&city='+city+'&children=1&offset=1&page=1&extensions=all'
    data = requests.get(url, headers=headers)
    data.encoding='utf-8'
    data=json.loads(data.text)
    result=data['pois'][0]['location'].split(',')
    return result[0],result[1]

keyword是你要查询的地址,city代表城市

我们这里city就设置为武汉

我们边爬取地铁站信息 边获得经度和纬度

于是得到了改进版的爬虫

def spyder():
    #获得武汉的地铁信息
    print('正在爬取武汉地铁信息...')
    url='http://wh.bendibao.com/ditie/linemap.shtml'
    user_agent='Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11'
    headers = {'User-Agent': user_agent}
    r = requests.get(url, headers=headers)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text, 'lxml')
    all_info = soup.find_all('div', class_='line-list')
    df=pd.DataFrame(columns=['name','site'])
    for info in tqdm(all_info):
        title=info.find_all('div',class_='wrap')[0].get_text().split()[0].replace('线路图','')
        station_all=info.find_all('a',class_='link')
        for station in station_all:
            station_name=station.get_text()
            longitude,latitude=get_location(station_name,'武汉')
            temp={'name':station_name,'site':title,'longitude':longitude,'latitude':latitude}
            df =df.append(temp,ignore_index=True)
    df.to_excel('./subway.xlsx',index=False)

4.得到地铁站之间的距离并构建图

计算各个地铁站的信息,并生成地铁站网络

现在我们得到了地铁站的经度和纬度 可以通过geopy.distance这个包来计算2点之间的距离

from geopy.distance import geodesic
print(geodesic((纬度,经度), (纬度,经度)).m) #计算两个坐标直线距离

当然高德地图api也同样提供了计算距离的接口

我们来配置计算距离的函数

输入经度和纬度就可以计算距离

def compute_distance(longitude1,latitude1,longitude2,latitude2):
    #计算2点之间的距离
    user_agent='Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
    headers = {'User-Agent': user_agent}
    url='http://restapi.amap.com/v3/distance?key='+keynum+'&origins='+str(longitude1)+','+str(latitude1)+'&destination='+str(longitude2)+','+str(latitude2)+'&type=1'
    data=requests.get(url,headers=headers)
    data.encoding='utf-8'
    data=json.loads(data.text)
    result=data['results'][0]['distance']
    return result

那么接下来就构建地铁站之间的图网络

因为爬取地铁站信息比较耗时,我们将制作好的图网络保存为pickle文件方便以后使用

def get_graph():
    print('正在创建pickle文件...')
    data=pd.read_excel('./subway.xlsx')
    #创建点之间的距离
    graph=defaultdict(dict)
    for i in range(data.shape[0]):
        site1=data.iloc[i]['site']
        if i<data.shape[0]-1:
            site2=data.iloc[i+1]['site']
            #如果是共一条线
            if site1==site2:
                longitude1,latitude1=data.iloc[i]['longitude'],data.iloc[i]['latitude']
                longitude2,latitude2=data.iloc[i+1]['longitude'],data.iloc[i+1]['latitude']
                name1=data.iloc[i]['name']
                name2=data.iloc[i+1]['name']
                distance=compute_distance(longitude1,latitude1,longitude2,latitude2)
                graph[name1][name2]=distance
                graph[name2][name1]=distance
    output=open('graph.pkl','wb')
    pickle.dump(graph,output)

5.得到当前位置距离最近的地铁站

我们要去找距离最近的地铁站 首先是获得位置的坐标

然后将当前的坐标遍历所有地铁站 找到最近的地铁站

longitude1,latitude1=get_location(site1,'武汉')
longitude2,latitude2=get_location(site2,'武汉')
data=pd.read_excel('./subway.xlsx')

定义get_nearest_subway函数来寻找最近的地铁站

def get_nearest_subway(data,longitude1,latitude1):
    #找最近的地铁站
    longitude1=float(longitude1)
    latitude1=float(latitude1)
    distance=float('inf')
    nearest_subway=None
    for i in range(data.shape[0]):
        site1=data.iloc[i]['name']
        longitude=float(data.iloc[i]['longitude'])
        latitude=float(data.iloc[i]['latitude'])
        temp=geodesic((latitude1,longitude1), (latitude,longitude)).m
        if temp<distance:
            distance=temp
            nearest_subway=site1
    return nearest_subway

通过遍历地铁站的距离找到了最近的上车点和下车点

6.使用Dijkstra算法对地铁线路进行规划

Dijkstra算法是求最短路径的经典算法

Dijkstra算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。

首先是读取构建的图信息

def subway_line(start,end):
    file=open('graph.pkl','rb')
    graph=pickle.load(file)
    #创建点之间的距离
    #现在我们有了各个地铁站之间的距离存储在graph
    #创建节点的开销表,cost是指从start到该节点的距离
    costs={}
    parents={}
    parents[end]=None
    for node in graph[start].keys():
        costs[node]=float(graph[start][node])
        parents[node]=start
    #终点到起始点距离为无穷大
    costs[end]=float('inf')
    #记录处理过的节点list
    processed=[]
    shortest_path=dijkstra(start,end,graph,costs,processed,parents)
    return shortest_path

构建dijkstra算法

#计算图中从start到end的最短路径
def dijkstra(start,end,graph,costs,processed,parents):
    #查询到目前开销最小的节点
    node=find_lowest_cost_node(costs,processed)
    #使用找到的开销最小节点,计算它的邻居是否可以通过它进行更新
    #如果所有的节点都在processed里面 就结束
    while node is not None:
        #获取节点的cost
        cost=costs[node]  #cost 是从node 到start的距离
        #获取节点的邻居
        neighbors=graph[node]
        #遍历所有的邻居,看是否可以通过它进行更新
        for neighbor in neighbors.keys():
            #计算邻居到当前节点+当前节点的开销
            new_cost=cost+float(neighbors[neighbor])
            if neighbor not in costs or new_cost<costs[neighbor]:
                costs[neighbor]=new_cost
                #经过node到邻居的节点,cost最少
                parents[neighbor]=node
        #将当前节点标记为已处理
        processed.append(node)
        #下一步继续找U中最短距离的节点  costs=U,processed=S
        node=find_lowest_cost_node(costs,processed)

    #循环完成 说明所有节点已经处理完
    shortest_path=find_shortest_path(start,end,parents)
    shortest_path.reverse()
    return shortest_path

#找到开销最小的节点
def find_lowest_cost_node(costs,processed):
    #初始化数据
    lowest_cost=float('inf') #初始化最小值为无穷大
    lowest_cost_node=None
    #遍历所有节点
    for node in costs:
        #如果该节点没有被处理
        if not node in processed:
            #如果当前的节点的开销比已经存在的开销小,那么久更新该节点为最小开销的节点
            if costs[node]<lowest_cost:
                lowest_cost=costs[node]
                lowest_cost_node=node
    return lowest_cost_node

#找到最短路径
def find_shortest_path(start,end,parents):
    node=end
    shortest_path=[end]
    #最终的根节点为start
    while parents[node] !=start:
        shortest_path.append(parents[node])
        node=parents[node]
    shortest_path.append(start)
    return shortest_path

7.将所有的函数封装

构建main文件将整个流程封装起来

def main(site1,site2):
    if not os.path.exists('./subway.xlsx'):
        spyder()
    if not os.path.exists('./graph.pkl'):
        get_graph()
    longitude1,latitude1=get_location(site1,'武汉')
    longitude2,latitude2=get_location(site2,'武汉')
    data=pd.read_excel('./subway.xlsx')
    #求最近的地铁站
    start=get_nearest_subway(data,longitude1,latitude1)
    end=get_nearest_subway(data,longitude2,latitude2)
    shortest_path=subway_line(start,end)
    if site1 !=start:
        shortest_path.insert(0,site1)
    if site2 !=end:
        shortest_path.append(site2)
    print('路线规划为:','-->'.join(shortest_path))

if __name__ == '__main__':
    global keynum
    keynum='' #输入自己的key
    main('华中农业大学','东亭')

比方我想去东亭,想坐地铁过去

我们看看通过规划的地铁线路

路线规划为:华中农业大学-->野芷湖-->板桥-->湖工大-->建安街-->瑞安街-->武昌火车站-->梅苑小区-->中南路-->洪山广场-->楚河汉街-->青鱼嘴-->东亭

我们来看看高德地图给我们的规划

不得了,一模一样~

8.可以继续完善的点

这个项目我们只做了地铁的相关信息,没有引入公交的信息加入道路线规划中,因此后续可以爬取武汉的公交线路进行地铁、公交混合线路规划

同时给出的规划信息只有文字描述,没有显示在地图上不够直观,我们可以进行flask的部署将规划的线路显示在地图上,更加不容易出错~

9.项目源码

https://pan.baidu.com/s/1dmstu7PlF12Bdgk9QTjsPA  提取码:r8es

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

利用Python爬取公交地铁数据(TransBigData版) TransbigData 阅读详情

相关推荐

爬取公共交通的线路和站点

基于python和某公共交通网站实现爬取城市公交和地铁的线路和站点的功能 一、爬取公共交通线路和站点 #导入python库 import json import requests from lxml import etree import pandas as pd import geopandas as gpd from shapely.geometry import Point import transbigdata as tbd from tqdm import tqdm #获得所有的网页url.

qq_41227847的博客 1276

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

python 爬虫 爬取某高地铁 并可视化

TaiBai_435_的博客 4065

武汉地铁站点最短路径搜索的实现(一)——Dijkstra算法(C++ coding)

1 #include <iostream> 2 #include <string> 3 #include <iomanip> 4 using namespace std; 5 6 void dijsktra(int n, int **arc); 7 8 i...

awqg8406的博客 1204

【爬虫、算法】基于Dijkstra算法的武汉地铁路径规划!

作者:牧小熊,华中农业大学,Datawhale原创作者前言最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划。1...

fengdu78的博客 912

写一个爬虫来获取地铁信息数据

用面向对象的方法来获取地铁信息数据写在前面具体代码如下代码说明这是说明 写在前面 最近在知乎上看到一篇关于地铁数据的分析,该篇文章很全面的分析了大陆(包括澳门香港)有地铁城市的分布、线路、站点等信息,很有阅读价值。本篇文章是对该文中获取信息部分的一个更进,使用面向对象的方法实现其部分功能。 具体代码如下 用python的面向对象方式实现目标,代码已做注释,可供参考使用。本人技术有限,如有错误请指出...

qq_42128025的博客 2583

C语言实现地铁乘坐最短路径

广度优先搜索会从起始站点开始,逐层遍历与当前节点相邻的节点,并记录下每个节点的距离和路径。根据设计思路,计划使用图的最短路径广度优先算法来计算地铁的最短乘坐线路。任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点.换乘站点只计算一次)。每个车站可以看作图中的一个节点,而相邻的车站之间的乘车路径可以看作是节点之间的边。可以通过读取用户输入来获取起始站点和目标站点,并调用实现的最短路径函数来计算结果。该函数应该接受起始站点和目标站点作为输入,并返回最短路径和经过的站数。

走向CTO的路上... 1138

基于Dijkstra算法的武汉地铁路径规划!(附下载)

来源:Datawhale本文约3300字,建议阅读10分钟本文为你详解路径规划项目,附源码链接。前言最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,...

数据派THU 990

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1401

使用图算法实现地铁线路规划

1、概述 2、DFS方法 3、BFS方法 4、弗洛伊德算法 5、Dijkstra算法 6、总结

wh义华的专栏 5613

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1116

华硕主板UEFI模式下安装Ubuntu与Windows双系统全攻略

本文详细讲解了在华硕主板UEFI模式下安装Ubuntu与Windows双系统的完整流程。从安装前的BIOS关键设置(如处理安全启动与CSM)、使用GPT分区表,到在Windows中安全分配空间、手动创建Ubuntu分区,最后完成引导配置,提供了避免常见错误的实用技巧,确保双系统稳定共存。

weixin_29199873的博客 346

基于Java实现的武汉地铁模拟系统

摘要:武汉地铁模拟系统基于MySQL数据库构建,包含站点(station)、路线(route)和连接(link)三张表。系统采用面向对象设计,核心类包括SubwaySystem(管理数据结构和算法)、Payment(抽象支付类)及其子类(普通票、武汉通和日票)。系统功能包括:查询站点所属路线、获取路线站点列表、计算最短路径(使用Floyd算法考虑换乘惩罚)、路径展示和票价计算。系统支持三种支付方式,并计划扩展图形界面。用例图展示了最少换乘路径查询功能,类图呈现了系统核心类及其关系。

毕业作品网站 1347

【EMC电磁兼容】02.04——原理图的实战落地细节

原理图上的关于EMC的落地体现一、元器件的选型二、原理图上的EMC体现在哪里?1.芯片电源管脚滤波去耦:2.时钟电路滤波设计3.低速电路滤波抗干扰设计4.通讯接口电路的防护滤波5.系统输入电源端口电路的防护滤波6.系统接地的定义7.芯片软件功能的审查 一、元器件的选型 ​ 原理图最初设计涉及到选型元器件方面: 元器件选型 不仅仅功能需要满足要求,还需要考虑其它细节参数在不同应力下的反应,封装的不同也会产生不同的变化。 元器件替代 常常因为成本原因进行器件替代,除了要考虑功能参数相同时也要考虑系统参数

Time to Forget 2248

Python爬虫练习:爬取高德地图地铁线路及站点数据

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:Darcy频道 # coding=utf-8 import requests import time import json import ast import os import utils from lxml import etree PAGE_URL = 'http://map.amap.com/subway/index.html?&1100.

Python案例分享,B站视频教程:https://space.bilibili.com/523606542 4312

maya权重拷贝一对一,一对多

是不是有时候盔甲很多很碎头很大,用代理一个个拷贝很麻烦吧 用下面代码直接运行进行一对多或者一对一拷贝 第一个先选择参考物体,加选其他一堆有的没的有权重或没权重的物体执行一键拷贝,就可以啦 以下是源码送上,带走吧 ------------------------ #! -*- coding:utf -8 -*- #author:liubingdong #date:20...

weixin_30852367的博客 1534

基于springboot生鲜食品订购系统的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。尽管O2O生鲜食品订购已经有了很大程度的发展,但在微信小程序的O2O生鲜食品订购领域上却少有建设。

1024

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

  本篇博文为博主(whgiser)原创,转载请注明。   城市公交、地铁数据反映了城市的公共交通,研究该数据可以挖掘城市的交通结构、路网规划、公交选址等。但是,这类数据往往掌握在特定部门中,很难获取。互联网地图上有大量的信息,包含公交、地铁等数据,解析其数据反馈方式,可以通过Python爬虫采集。闲言少叙,接下来将详细介绍如何使用Python爬虫爬取城市公交、地铁站点和数据。   ...

PC13138的博客 5208

HDR 成像技术学习(三)—— LOFIC

LOFIC(Lateral Overflow Integration Capacitor,横向溢出集合电容)介绍,从像素结构到工作时序。

沧海一升的博客 9730

Python爬取全国地铁站点、地铁线路和发车时刻

爬取全国地铁站点、地铁线路和发车时刻的方法。 一、两种爬取方法概述 (一)html页面爬取 1、 为了收集全国地铁线路的发车时刻信息,刚开始尝试的方法如下: (1)找到每个城市的地铁官网,如“广州地铁官方网站” (2)在官网找到首尾班车时刻表,广州的发车时刻数据在http://cs.gzmtr.com/ckfw/fwsj/ (3)使用python爬取网页的表格...

asiya的博客 3409

华为od 面试八股文_C++_01_含答案

华为od 面试八股文_C++_01_含答案

MISAYAONE的博客 5598

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

全国地铁城市数据分析(python实现)

详解数据分析过程(包括但不限于数据采集,处理,可视化分析),网络爬虫的基础应用(request+xpath,selenuim),pyechart图表的使用。

a284365的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【爬虫+算法】爬取成都地铁所有站点信息,并基于迪杰特斯拉算法计算最优地铁路线

效果图 输入四川师范大学到四川大学试试水: 对比高德地图结果: 一毛一样。 项目地址 https://github.com/AA8j/ChenduMetro 参考文章 https://blog.youkuaiyun.com/qq_39241986/article/details/111465810

AA8j的博客 745

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

爬虫实例之爬取北京地铁站点

目标网站:https://www.bjsubway.com/station/zjgls/# 使用模块:re、os、requests、BeautifulSoup 老样子,直接步入正题。 先看下结果: 北京地铁各站点间距离一览                          载入模块 import requests from bs4 import BeautifulSoup i...

HollyRan的博客 5313

5秒用Python轻松爬取全国"地铁"数据!

截止发文,全国一共有40个城市开通了地铁,累计站点数量为5968而我,爬完这些数据,只用了5秒此时,正在看文章的你,是不是心里会默默的来一句:麻雀啄了牛屁股—雀食牛逼今天就来教大家用 Python 如何快速搞定,先给一个使用说明,源码和逻辑见后文1、核心代码首先是先获取所有开通地铁的城市代码分成两部分,一部分是官方页面显示出的城市列表,一部分是未显示出来的城市列表其中,主函数代码如下:"""获取...

张俊红的个人博客 2840
上一篇: 超酷!Python 绘制属于你的世界地图
下一篇: Python 炫技操作:安装包的八种方法
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值