HTML應用指南:利用GET請求獲取中國銀行人民幣存款利率數據

人民幣存款利率是影響居民儲蓄行為和企業資金配置的關鍵因素,也是宏觀經濟調控的重要工具。中國銀行根據中國人民銀行的指導政策,結合市場情況與自身經營策略,定期調整并公布人民幣存款利率標準。這些利率信息主要涵蓋活期存款、定期存款(如整存整取、零存整取、通知存款、協定存款等)等多個產品類別,覆蓋三個月、半年、一年、二年、三年、五年等不同存期,全面反映銀行對不同期限資金的定價策略。

為提升信息透明度與數據可用性,本文將探討如何通過程序化方式,利用 GET 請求從中國銀行官方網站的公開頁面中獲取人民幣存款利率數據。通過 Python 編程語言中的 requests 庫發送 HTTP 請求,模擬瀏覽器行為訪問利率公告頁面,并結合 BeautifulSoup 或 json 模塊解析返回的 HTML 或結構化數據,實現對利率信息的自動化采集。采集內容包括利率發布日期、各存期對應的年利率數值、利率調整說明等關鍵字段,形成結構化的數據集。

此類數據采集方法不僅有助于實時跟蹤中國銀行的利率變動趨勢,還可用于分析其利率定價策略的周期性規律、與其他商業銀行的利率差異以及與宏觀經濟指標(如CPI、LPR、貨幣政策)之間的關聯性。通過對歷史利率數據的清洗、整理與可視化分析,可為個人投資者的資產配置決策、金融機構的市場研究以及學術領域的金融政策評估提供有力的數據支持。此外,構建自動化的利率監控系統,也有助于提升金融信息獲取的效率與準確性,助力智慧金融生態的發展。

中國銀行人民幣存款利率列表:中國銀行網站_金融市場_存/貸款利率_人民幣存款利率

首先,我們找到門店數據的存儲位置,然后看3個關鍵部分標頭、負載、?預覽;

標頭:通常包括URL的連接,也就是目標資源的位置;

負載:對于GET請求:負載通常包含了傳遞的參數,有些網頁負載可能為空,或者沒有負載,因為所有參數都通過URL傳遞,這里我們可以看到并沒有負載;

預覽:指的是對響應內容的快速查看或摘要顯示,可以幫助用戶快速了解返回的數據結構或內容片段;

接下來就是數據獲取部分,先講一下方法思路,一共三個步驟;

方法思路

  1. 找到對應數據存儲位置,獲取所有店鋪列表的相關標簽數據;
  2. 我們通過改變店鋪id和店鋪name,來遍歷全國門店數據;
  3. 地址轉經緯度,通過coord-convert庫實現GCJ-02轉WGS84;

這里,我們找到數據的位置之后,我們發現這個人民幣存款利率數據每個都是一個單獨的html,我們需要遍歷所有的html,才能獲取完整的數據;

那么,我們先要找到這頁面對應的URL的儲存位置,因為每個html對應的頁面url都不一樣,這里我們以人民幣存款利率表2025-05-20的html為例,我們通過Ctrl + F 檢索20250520,就可以在響應里找到數據對應的儲存位置;

接下來,我們就需要找到數據儲存的特定標簽,先定位到包含主要內容的 <div class="news"> 容器,從該容器中找到存放所有歷史鏈接的無序列表 <ul class="list">。遍歷每個 <li> 條目,從中提取出鏈接和日期信息;

還有一個問題,數據是包含2頁的,我們訪問第二頁的時候是需要通過另外一個html,我們先來觀察規律,可以看到URL由index.html →index_1.html;

第一頁 (current_page = 1): page_url = base_url + "index.html" → https://www.bankofchina.com/fimarkets/lilv/fd31/index.html
第二頁 (current_page = 2): page_url = base_url + "index_1.html" → https://www.bankofchina.com/fimarkets/lilv/fd31/index_1.html

第一步:那么我們先獲取包含中國銀行人民幣存款利率列表所有日期和URL的響應數據,并另存為csv;

完整代碼#運行環境 Python 3.1

import requests
from bs4 import BeautifulSoup
import csv
from datetime import datetime# --- 請求頭 ---
headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Mobile Safari/537.36 Edg/139.0.0.0'
}# --- 兩個頁面的URL ---
urls = ["https://www.bankofchina.com/fimarkets/lilv/fd31/index.html",  # 第一頁"https://www.bankofchina.com/fimarkets/lilv/fd31/index_1.html"  # 第二頁
]def extract_links_from_url(page_url):"""從單個頁面URL中提取所有利率表鏈接。"""print(f"正在抓取: {page_url}")try:response = requests.get(page_url, headers=headers, timeout=10)response.raise_for_status()soup = BeautifulSoup(response.text, 'html.parser')links = []# 直接定位到新聞列表中的每個條目for li in soup.select('div.news ul.list li'):a_tag = li.find('a')span_tag = li.find('span')if a_tag and span_tag:# 構建完整URLhref = a_tag['href']# 處理相對路徑和絕對路徑if href.startswith("http"):full_url = hrefelif href.startswith("/"):full_url = "https://www.bankofchina.com" + hrefelse:full_url = "https://www.bankofchina.com/fimarkets/lilv/fd31/" + href.lstrip("./")date = span_tag.get_text(strip=True).strip('[] ')links.append({'date': date, 'url': full_url})print(f"從該頁面找到 {len(links)} 個鏈接。")return linksexcept Exception as e:print(f"抓取 {page_url} 時出錯: {e}")return []# --- 主執行流程 ---
if __name__ == "__main__":print("開始抓取中國銀行人民幣存款利率表鏈接...\n")all_links = []for url in urls:page_links = extract_links_from_url(url)all_links.extend(page_links)# 去重 (基于URL)seen_urls = set()unique_links = []for link in all_links:if link['url'] not in seen_urls:seen_urls.add(link['url'])unique_links.append(link)# 按日期倒序排列 (假設日期格式為 YYYY-MM-DD)unique_links.sort(key=lambda x: x['date'], reverse=True)# --- 保存為CSV ---filename = f"中國銀行存款利率鏈接_{datetime.now().strftime('%Y%m%d')}.csv"try:with open(filename, 'w', newline='', encoding='utf-8-sig') as csvfile:  # utf-8-sig 防止Excel亂碼fieldnames = ['日期', 'URL']writer = csv.DictWriter(csvfile, fieldnames=fieldnames)writer.writeheader()for link in unique_links:writer.writerow({'日期': link['date'], 'URL': link['url']})print(f"\n數據已成功保存到: {filename}")print(f"文件包含 {len(unique_links)} 條記錄。")except Exception as e:print(f"保存CSV文件時出錯: {e}")print("\n抓取與保存任務全部完成。")

數據會以csv表格的形式,保存在運行腳本的目錄下,數據標簽包括:日期、中國銀行人民幣存款利率列表的URL;

接下來,我們就來獲取每個網頁的整存整取利率表,這里僅選取1年—5年利率作為數據源,先找到 <table>,遍歷所有 <tr> 行,設置一個標志 in_fixed_deposit = False,當遇到 <strong>1.整存整取</strong> 時,將其設為 True,在 in_fixed_deposit 為 True 的狀態下,如果某行的第一個 <td> 文本是 '一年', '二年', '三年','五年',則提取第二個 <td> 的文本作為利率;

第二步:遍歷所有URL,并利用GET請求獲取所有整存整取1年—5年利率表,并根據標簽進行保存,另存為csv;

完整代碼#運行環境 Python 3.11

import requests
from bs4 import BeautifulSoup
import csv
from datetime import datetime
import re
import time# 配置
INPUT_CSV = "中國銀行存款利率鏈接_20250825.csv"
OUTPUT_CSV = f"整存整取利率_中國銀行_{datetime.now().strftime('%Y%m%d')}.csv"HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}def read_links():"""讀取CSV鏈接"""with open(INPUT_CSV, encoding='utf-8-sig') as f:return [row for row in csv.DictReader(f)]def extract_rates(url):"""提取利率"""res = requests.get(url, headers=HEADERS, timeout=10)res.encoding = 'gbk' if 'gbk' in res.headers.get('Content-Type', '') else 'utf-8'soup = BeautifulSoup(res.text, 'html.parser')table = soup.find('table')if not table:return {'一年': 'N/A', '二年': 'N/A', '三年': 'N/A', '五年': 'N/A'}rates = {}in_fixed = Falsefor row in table.find_all('tr'):cols = row.find_all('td')if len(cols) < 2: continuet1 = re.sub(r'\s+', '', cols[0].get_text(strip=True))t2 = re.sub(r'\s+', '', cols[1].get_text(strip=True))if "1.整存整取" in t1:in_fixed = Truecontinueif in_fixed and t1 in ['一年', '二年', '三年', '五年']:rate = re.search(r'(\d+\.?\d*)', t2)rates[t1] = rate.group(1) if rate else 'N/A'if in_fixed and any(k in t1 for k in ["2.零存整取", "3.定活兩便"]):break  # 提前退出,提高效率return {k: rates.get(k, 'N/A') for k in ['一年', '二年', '三年', '五年']}# 主程序
print("開始提取...")
links = read_links()
results = []for i, link in enumerate(links, 1):print(f"[{i}/{len(links)}] {link['日期']}")rates = extract_rates(link['URL'])results.append({'日期': link['日期'],'一年利率(%)': rates['一年'],'二年利率(%)': rates['二年'],'三年利率(%)': rates['三年'],'五年利率(%)': rates['五年']})time.sleep(0.3)# 保存
with open(OUTPUT_CSV, 'w', newline='', encoding='utf-8-sig') as f:w = csv.DictWriter(f, ['日期', '一年利率(%)', '二年利率(%)', '三年利率(%)', '五年利率(%)'])w.writeheader()w.writerows(results)print(f"完成!結果已保存至: {OUTPUT_CSV}")

數據會以csv表格的形式,保存在運行腳本的目錄下,數據標簽包括:日期、一年利率(%)、二年利率(%)、三年利率(%)、五年利率(%);

接下來,我們繪制成可視化的效果來觀察人民幣存款利率變化情況;

接下來,我們進行看圖說話:

從1996年至2025年,中國銀行人民幣存款利率經歷了深刻而顯著的演變過程,整體呈現出一條清晰的長期下行軌跡。 這一趨勢貫穿了近三十年的經濟變遷,反映出中國宏觀經濟環境的深刻轉型以及貨幣政策在不同發展階段的調控邏輯。在1996年初期,存款利率處于歷史高位,五年期利率一度接近12%,一年期利率也高達9%以上,顯示出當時高通脹背景下的資金成本水平和較為緊縮的金融環境。

進入1998年后,受亞洲金融危機及國內通縮壓力影響,央行多次下調利率,標志著高利率時代的結束。 利率迅速回落,五年期利率降至5%以下,三年期和一年期利率也同步下行。這一階段的降息不僅是為了應對外部沖擊,更是推動國有企業改革、化解銀行不良資產和促進經濟結構調整的重要手段。此后直至2007年,利率進入一個相對平穩的波動期,各期限利率在3%至6%區間內小幅震蕩,反映出經濟高速增長背景下貨幣政策的審慎與穩定。

2008年全球金融危機成為又一個關鍵轉折點,利率波動顯著加劇。 為應對外部沖擊,中國實施了大規模經濟刺激計劃,利率再次大幅下調,一年期利率一度跌破2%。隨后隨著經濟復蘇和通脹回升,利率在2010年至2011年期間出現短暫反彈,三年期利率一度接近5%。這一階段顯示出貨幣政策強烈的逆周期調節特征,利率成為穩定經濟增長的重要工具。

自2015年起,利率進入新一輪持續下行通道,反映出經濟增速換擋與結構性調整的新常態。 隨著人口紅利減弱、房地產市場調整以及外部環境不確定性上升,貨幣政策持續寬松,各期限利率普遍回落。至2025年,一年期利率已降至不足1%,五年期利率也降至2%左右,表明當前處于低增長、低通脹背景下的長期寬松格局。這一階段的降息不僅旨在降低實體經濟融資成本,也體現了金融讓利實體經濟的政策導向。

從期限結構看,短期利率波動更為劇烈,而中長期利率相對平穩。 一年期和二年期利率對政策調整和經濟周期反應靈敏,常作為貨幣政策操作的先導指標;而三年期和五年期利率則更多體現市場對未來經濟走勢的長期預期,其走勢相對平緩,利差結構基本穩定,未出現明顯倒掛,說明銀行體系的期限溢價機制仍在正常運行。

綜合來看,過去近三十年的利率走勢,是中國從高速增長邁向高質量發展轉型過程的金融映射。 利率的逐步降低既是對實體經濟融資成本的讓利,也是金融深化與市場化改革推進的結果。展望未來,在人口老齡化、潛在增長率下降和全球低利率環境的大背景下,存款利率或將維持低位運行,但其變化仍將緊密跟隨宏觀經濟復蘇節奏與政策導向,成為觀察中國經濟健康狀況的重要窗口。

文章僅用于分享個人學習成果與個人存檔之用,分享知識,如有侵權,請聯系作者進行刪除。所有信息均基于作者的個人理解和經驗,不代表任何官方立場或權威解讀。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920156.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RPS和QPS

簡介 這是系統設計中兩個最核心且容易混淆的性能指標。簡單來說&#xff1a; ? RPS 是 “每秒請求數”&#xff0c;是從客戶端或負載均衡器的視角看&#xff0c;服務器每秒接收到的請求數量。 ? QPS 是 “每秒查詢數”&#xff0c;通常是從數據庫或特定服務的視角看&…

如何將用戶反饋轉化為可執行需求

用戶反饋是企業優化產品、改進服務的重要依據。將用戶反饋轉化為可執行需求的核心在于通過系統化的流程對反饋進行收集、分析和分類&#xff0c;并結合企業的戰略目標與技術能力&#xff0c;制定出具體的執行方案。這一過程不僅要求企業深入理解用戶需求&#xff0c;還需要跨部…

ry-vue docker部署

目錄 整體架構概覽 創建 Docker 自定義網絡 Redis 部署&#xff08;緩存服務&#xff09; redis.conf修改 啟動 Redis 容器 測試 啟動 MySQL 容器 允許 root 用戶遠程訪問&#xff08;%&#xff09; 初始化數據庫&#xff08;可選&#xff09; RuoYi-Admin 后端服務部…

Redis之Keys命令和Scan命令

序言 網上看到的面試題&#xff1a;Redis有1億個key&#xff0c;其中10w個key是以某個固定的前綴開頭&#xff0c;如何將它們全部找出來&#xff1f;一般有兩種命令可以實現&#xff1a; Keys命令Scan命令 下面具體分析一下兩種命令 Keys命令 Keys pattern如下圖所示&…

【小沐學GIS】基于Godot繪制三維數字地球Earth(Godot)

&#x1f37a;三維數字地球GIS系列相關文章&#xff08;C&#xff09;如下&#x1f37a;&#xff1a;1【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&…

day62 Floyd 算法 A * 算法

Floyd 算法本題是經典的多源最短路問題.Floyd 算法對邊的權值正負沒有要求&#xff0c;都可以處理。Floyd算法核心思想是動態規劃。例如我們再求節點1 到 節點9 的最短距離&#xff0c;用二維數組來表示即&#xff1a;grid[1][9]&#xff0c;如果最短距離是10 &#xff0c;那就…

【軟考論文】論可觀測性架構技術的應用

&#x1f381; 考高級架構師的小伙伴注意了&#xff01;&#x1f4e2; 軟考架構論文示例 2025年11月軟考架構論文預測&#x1f44d; 一、歷年論文題目 無&#xff01;&#xff01;&#xff01; 二、考情分析 “可觀測性技術”這一論題&#xff0c;目前在高級架構師與高級系統分…

軟件測試:測試分類(一)

常用測試分類1.功能測試&#xff08;人對功能的確定&#xff0c;保證某個功能可以正常進行&#xff09;如驗證你輸入正確的手機號碼和密碼是否登錄成功。手機號碼不存在是否有提示&#xff0c;密碼不正確是否有提示等2.自動化測試&#xff08;如jmeter&#xff0c;屬于黑盒測試…

BigFoot (Method Raid Tools)[MRT] (Event Alert Mod)[EAM]

檢查法術技能ID&#xff0c;需要EAM命令&#xff0c;所以要先安裝EAM BigFoot EventAlertMod lua-CSDN博客 /eam lookup 冰封之韌 同時我們發現一個糟糕的問題&#xff0c;為什么會有這么多ID呢&#xff0c;默認第一個 還有一種法子就是讓別人開了技能告訴你ID&#xff0c;最…

【Scrapy-Redis】分布式爬蟲實戰(非常詳細)

一、概要 1.分布式爬蟲概念 分布式爬蟲是一種利用多臺機器協同工作的網絡爬蟲系統&#xff0c;通過任務分解、并行處理和資源共享&#xff0c;高效抓取并處理海量網頁數據。其核心在于將爬取任務分配到不同節點&#xff0c;避免單點性能瓶頸&#xff0c;同時支持動態擴展和容錯…

基于51單片機智能化交通紅綠燈堵車流量紅外設計

1 系統功能介紹 本設計題目為 基于51單片機智能化交通紅綠燈堵車流量紅外設計&#xff0c;主要用于十字路口交通信號智能控制&#xff0c;通過紅外避障檢測車流量&#xff0c;自動調節紅綠燈時間&#xff0c;緩解擁堵。該系統由單片機、LED燈、紅外避障傳感器、LCD1602液晶顯示…

VsCode 上的Opencv(C++)環境配置(Linux)

1.下載Opencv1.新建文件demo_cpp,在demo_cpp中新建third_parties文件2.OPENCV官網下載OpenCV-4.12.03.將下載好的opencv-4.12.0.zip壓縮包在third_parties中解壓,//以下均無特殊說明,均在vscode里的TERMINAL中輸入 sudo apt-get install unzip//用于解壓.zip文件 cd third_part…

sql xml模板

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"com.example.mapper.UserMapper&quo…

docker在自定義網絡中安裝ElasticSearch和Kibana

創建自定義網絡 創建一個名為 es-net 的橋接網絡。這將作為 Elasticsearch 和 Kibana 的私有通信通道。 # 創建網絡 docker network create es-net # 查看網絡是否創建成功 docker network ls啟動 Elasticsearch 容器 安裝命令 docker run -d \--name elasticsearch \--net…

基于51單片機射頻RFID停車刷卡計時收費系統設計

1 系統功能介紹 本設計題目為 基于51單片機射頻RFID停車刷卡計時收費系統設計&#xff0c;旨在實現停車場車輛的刷卡計時和收費管理。系統通過單片機控制&#xff0c;結合 RFID 射頻識別技術、LCD1602 顯示以及蜂鳴器報警&#xff0c;實現停車時間的智能計時、累加及超時提醒功…

Netty源碼—性能優化和設計模式

1.Netty的兩大性能優化工具 (1)FastThreadLocal FastThreadLocal的作用與ThreadLocal相當&#xff0c;但比ThreadLocal更快。ThreadLocal的作用是多線程訪問同一變量時能夠通過線程本地化的方式避免多線程競爭、實現線程隔離。 Netty的FastThreadLocal重新實現了JDK的ThreadLoc…

Linux網絡設備分析

?? Linux 網絡設備驅動深入分析 本文將詳細分析 Linux 網絡設備驅動的工作原理、實現機制和代碼框架,并通過一個虛擬網卡實例展示其實現,最后介紹常用的工具和調試手段。 1?? Linux 網絡設備驅動概述 Linux 網絡設備驅動是內核中負責管理網絡硬件(如以太網卡、Wi-Fi …

計算機視覺:從 “看見” 到 “理解”,解鎖機器感知世界的密碼

早上醒來&#xff0c;你拿起手機&#xff0c;人臉識別瞬間解鎖屏幕&#xff1b;開車上班時&#xff0c;車載系統通過攝像頭實時識別車道線&#xff0c;提醒你不要偏離&#xff1b;去醫院做檢查&#xff0c;醫生用 AI 輔助的醫學影像系統快速定位肺部微小結節&#xff1b;逛超市…

深入了解linux系統—— 線程封裝

C11線程庫 C11也提供了對應的線程庫&#xff0c;在頭文件<thread>中&#xff1b;C11將其封裝成thread類&#xff0c;通過類實例化出對象&#xff0c;調用類內成員方法進行線程控制。 #include <iostream> #include <thread> #include <unistd.h> using…

安全防御-SCDN如何保護網站安全

隨著互聯網的快速發展&#xff0c;越來越多的企業依賴在線服務來運行其核心業務。與此同時&#xff0c;網絡攻擊的頻率和復雜性也在不斷增加&#xff0c;惡意流量成為許多企業頭疼的問題。為了有效地提高網站的安全性和穩定性&#xff0c;德迅云安全加速SCDN被許多用戶關注。今…