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

HTML应用指南:利用GET请求获取MSN财经股价数据并可视化

随着数字化金融服务的不断深化,及时、准确的财经信息已成为投资者决策与市场分析的重要支撑。MSN财经股价数据服务作为广受信赖的金融信息平台,依托微软强大的技术架构与数据整合能力,持续为全球用户提供全面、可靠的证券市场数据。平台不仅提供股票的实时交易价格、涨跌幅、成交量等核心行情指标,还涵盖历史K线数据、市值、市盈率、前收盘价等关键财务与交易信息,满足个人投资者、金融机构及数据分析人员多样化的金融信息需求。

在确保数据准确性与服务稳定性的同时,MSN财经也注重信息输出的标准化与系统集成的便捷性。其股价数据通过统一的API接口以结构化方式提供,返回格式清晰的JSON数据,便于各类应用系统、量化模型及数据分析工具进行集成与二次开发。这些数据广泛应用于投资研究、金融资讯发布、智能投顾、风险监控、教育分析等多个领域,覆盖A股、美股、指数基金等主流市场,形成了高效、开放的数据服务生态,显著提升了金融信息的可及性与应用效率。

本文将以最近爆火,一度股价超过茅台的新晋股王,寒武纪(Cambricon Technologies Corp Ltd,股票代码:688256)为例,探讨如何通过GET请求从MSN财经平台获取详细的股价数据,并展示使用Python的requests库发送HTTP请求的具体方法,以提取该上市公司在指定时间范围内的市场价格信息。所获取的数据涵盖目标股票的开盘价、最高价、最低价、收盘价、成交量及时间戳等关键字段。通过对返回的JSON数据进行解析,实现对历史股价的结构化采集与持久化存储。此类数据有助于分析个股的价格走势、波动特征、市场情绪变化及重大事件对股价的影响。通过对股价数据的深入整理与建模分析,可为后续的投资策略制定、技术指标计算、资产配置优化及市场风险预警提供坚实的数据基础。

MSN财经平台网站:688256 1,492.49 -95.42 -6.01% : 寒武纪 - MSN 财经

首先,我们找到股票价格数据的存储位置,然后看3个关键部分标头、负载、 预览;

标头:通常包括URL的连接,也就是目标资源的位置;

负载:对于GET请求:负载通常包含了传递的参数,有些网页负载可能为空,或者没有负载,因为所有参数都通过URL传递,这里我们可以看到包括"寒武纪"(688256)在 MSN 内部的唯一标识符,10Y = 10年,H1 = 高频(日线)等一些参数,还是明文,没有进行加密;

预览:指的是对响应内容的快速查看或摘要显示,可以帮助用户快速了解返回的数据结构或内容片段;

接下来就是数据获取部分,先讲一下方法思路,一共三个步骤;

方法思路

  1. 找到对应股票数据存储位置,获取所有股票的相关标签数据;
  2. 我们通过requests库发送HTTP请求,来遍历一定日期范围内的股票价格数据;
  3. 通过python脚本进行数据可视化包括开盘价、最高价、收盘价等;

第一步:我们直接在"Fetch/XHR"先找到对应数据存储位置,如果找不到数据储存位置,就随便在"网络"里随便Ctrl +F 我们看到收盘价或者其他价格,就可以找到对应响应请求;

第二步:利用GET请求获取所有股票价格数据,并根据标签进行保存,另存为csv;

完整代码#运行环境 Python 3.11

import requests
import pandas as pd
from datetime import datetime# 请求配置
url = "https://assets.msn.cn/service/Finance/Charts"
params = {'ids': 'bwlwrw','type': '10YH1','apikey': '0QfOX3Vn51YCzitbLaRkTTBadtWpgTN8NZLW0C1SEM','wrapodata': 'false','disableSymbol': 'false'
}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0','Accept': 'application/json, text/plain, */*','Referer': 'https://www.msn.cn/zh-cn/finance','Origin': 'https://www.msn.cn','Sec-Fetch-Site': 'same-site','Sec-Fetch-Mode': 'cors'
}print("正在请求金融数据...\n")try:response = requests.get(url, headers=headers, params=params, timeout=10)if response.status_code != 200:print(f"请求失败,状态码:{response.status_code}")print(response.text)else:print(f"请求成功!状态码:{response.status_code}\n")data = response.json()# 检查数据是否存在if not data or not isinstance(data, list) or len(data) == 0:print("返回数据为空或格式错误")print("原始响应:", response.text)else:chart_data = data[0]series = chart_data.get("series", {})# 提取K线数据(注意字段名)timestamps = series.get("timeStamps", [])open_prices = series.get("openPrices", [])close_prices = series.get("prices", [])  # 收盘价high_prices = series.get("pricesHigh", [])  # 最高价low_prices = series.get("pricesLow", [])  # 最低价volumes = series.get("volumes", [])  # 成交量print(f"共获取到 {len(close_prices)} 条K线数据")if len(close_prices) == 0:print("警告:返回的数据为空,请检查 'ids' 或网络环境")else:# 构建数据记录records = []for i in range(len(close_prices)):try:dt = datetime.fromisoformat(timestamps[i].replace("Z", "+00:00")).replace(tzinfo=None)except:dt = timestamps[i]records.append({'datetime': dt,'open': open_prices[i] if i < len(open_prices) else None,'high': high_prices[i] if i < len(high_prices) else None,'low': low_prices[i] if i < len(low_prices) else None,'close': close_prices[i],'volume': volumes[i] if i < len(volumes) and volumes[i] > 0 else None})df = pd.DataFrame(records)print("\n数据预览:")print(df.head(10))# 保存为CSVsymbol = chart_data.get("symbol", "UNKNOWN")name = chart_data.get("displayName", "Unknown").replace("/", "_").replace(" ", "_")csv_file = f"{symbol}_{name}.csv"df.to_csv(csv_file, index=False, encoding='utf-8-sig')print(f"\n数据已成功保存为 '{csv_file}'")print(f"资产名称: {name} ({symbol})")print(f"前收盘价: {chart_data.get('pricePreviousClose', 'N/A')}")except Exception as e:print(f"请求或处理过程中出错:{e}")

这里有一个tips:1、如果需要改成其他股票数据,直接修改负载中对应的股票查询出来的ids即可;

获取数据标签如下:datetime(日期)、open(开盘价)high(最高价)、low(最低价)、close(收盘价)、volume(成交量),其他一些非关键标签,这里省略;

接下来,我们绘制成可视化的效果来看一下寒武纪股价从2020年7月上市以来,到晋升A股"新股王"的传奇之路;

接下来,我们进行看图说话:

寒武纪(688256)自2020年8月至2025年8月的股价走势,可清晰划分为三个阶段,整体呈现出从长期蓄势到稳步攀升,再到爆发式上涨的完整上升周期,充分体现了国产AI芯片企业在技术突破与产业风口双重驱动下的巨大成长潜力。

第一阶段:低位震荡与战略筑底(2020年8月 – 2023年6月)
在这一阶段,寒武纪股价长期在50元至80元区间内窄幅震荡,走势平稳但缺乏方向性突破。成交量整体维持在较低水平,市场交投清淡,反映出投资者对当时公司持续亏损、商业化进程缓慢的担忧。2020年至2023年上半年,公司仍处于研发投入高峰期,年度净亏损一度达5.3亿元,尚未形成稳定的盈利模式。然而,正是这一时期的深度调整与技术积累,为后续的逆袭奠定了坚实基础。资金在此区间逐步吸筹,完成了从“无人问津”到“悄然布局”的转变,属于典型的长期筑底阶段。

第二阶段:趋势确立与稳步攀升(2023年7月 – 2024年12月)
随着全球AI大模型浪潮兴起,国产替代战略加速推进,寒武纪作为“中国版英伟达”的定位日益清晰,市场关注度显著提升。从2023年中开始,公司陆续发布新一代AI芯片产品,与多家头部科技企业达成合作,商业化落地取得实质性进展。股价由此开启震荡上行通道,从约80元逐步攀升至150元以上。期间虽有回调,但低点不断抬高,形成清晰的上升趋势。成交量也逐步放大,尤其在每次价格上涨时均伴随量能释放,显示出机构资金持续流入。这一阶段不仅是股价的修复期,更是市场对公司技术实力与产业前景重新定价的过程。

第三阶段:加速上涨与“股王”易主(2025年1月 – 2025年8月)
进入2025年,寒武纪迎来业绩与估值的“戴维斯双击”。公司发布2025年上半年财报,净利润高达10.38亿元,一举扭转多年亏损局面,实现从“烧钱”到“赚钱”的根本性转变。这一里程碑式的业绩突破,叠加国产AI芯片自主可控的政策红利持续释放,引爆市场情绪。股价自此开启加速上涨模式,尤其在2025年8月,行情达到高潮。8月27日,寒武纪股价首次短暂超越贵州茅台;次日(8月28日),公司股价再次强劲上攻,收盘大涨15.73%,报收于1587.91元/股,以141元的优势力压贵州茅台,正式登顶A股“第一高价股”宝座。与此同时,成交量急剧放大,多次出现“量价齐升”的强势信号,显示出市场资金的高度认可与追捧。

寒武纪四年来的崛起之路,不仅是一段资本市场的传奇,更是中国AI芯片产业从追赶到突破的缩影。其股价经历了“筑底—爬升—爆发”的完整周期,背后是技术积累、产业趋势与业绩兑现的三重共振。此次“A股股王”宝座易主,标志着市场价值取向正从传统消费龙头向科技创新前沿倾斜。未来,寒武纪能否持续领跑,还需看其在高端芯片研发、市场份额拓展及全球竞争中的长期表现,但毫无疑问,它已成为中国科技自立自强时代的一个标志性符号。

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

http://www.dtcms.com/a/361536.html

相关文章:

  • 电脑没加域却能获取到IP地址
  • 力扣hot100 | 堆 | 215. 数组中的第K个最大元素、347. 前 K 个高频元素、128. 最长连续序列
  • 鞍点(Saddle Point)一文通透从曲面直觉到博弈与优化
  • 手写MyBatis第46弹:多插件责任链模式的实现原理与执行顺序奥秘--MyBatis插件架构深度解析
  • 【机器学习学习笔记】numpy基础2
  • 基于站点、模式、遥感多源降水数据融合技术应用
  • 基于单片机自行车码表/骑行运动监测
  • CVE Push Service | 高危漏洞实时情报自动化推送工具
  • Python备份实战专栏第4/6篇:Vue.js + Flask 打造企业级备份监控面板
  • SQLSERVER关键字:N
  • 构建编程知识体系:从菜鸟教程入门到指针精通的系统学习指南
  • 华东制造企业推荐的SD-WAN服务商排名
  • MySQL 8 窗口函数详解
  • 【Linux】终止线程
  • 旧物回收小程序:科技赋能,开启旧物新生之旅
  • 02-Media-1-acodec.py 使用G.711编码和解码音频的示例程序
  • 《投资-41》- 自然=》生物=》人类社会=》商业=》金融=》股市=》投资,其层层叠加构建中内在的相似的规律和规则
  • AR巡检系统:多源数据同步,开启工业智能化新纪元
  • 单链表的基本原理与实现
  • PyCharm 2025版本中新建python工程文件自动创建.venv的意义和作用
  • 【PCIE 系统】111 PCIE 设备 TYPE 0、TYPE 1
  • Google Gemini 2.5 Flash Image(Nano-Banana)震撼登场!人人都能免费用的AI修图神器!
  • 【开题答辩全过程】以 校园帮帮团跑腿系统的设计与实现为例,包含答辩的问题和答案
  • Leetcode 3664. Two-Letter Card Game
  • LeetCode 面试经典 150_滑动窗口_串联所有单词的子串(32_30_C++_困难)(滑动窗口:控制起点和滑动距离)
  • 原位表征技术在水系电池研究稳定性测试中的应用-测试GO
  • 教育 AI 的下半场:个性化学习路径生成背后,技术如何平衡效率与教育本质?
  • 学习日记-spring-day47-9.1
  • 使用LoadBalancer替换Ribbon(五)
  • 深入解析quiche开源项目:从QUIC协议到云原生实践