使用Python抓取并分析外汇汇率数据

embedded/2024/10/15 20:04:02/

使用Python抓取并分析外汇汇率数据

在当今全球化的经济环境中,了解不同货币之间的汇率是非常重要的。对于个人投资者、旅行者以及企业来说,准确及时的汇率信息可以帮助他们做出更加明智的决策。本文将介绍如何使用Python编程语言来从网络上获取最新的外汇汇率数据,并将其保存到Excel文件中以便进一步分析。

准备工作

首先确保你的开发环境已经安装了以下Python库:

  • requests:用于发送HTTP请求。
  • beautifulsoup4(简称bs4):解析HTML和XML文档。
  • pandas:处理和分析结构化数据的强大工具。
  • openpyxl:用来读写Excel 2010 xlsx/xlsm/xltx/xltm文件。

你可以通过pip命令来安装这些库:

pip install requests beautifulsoup4 pandas openpyxl

编写代码

定义类与函数

我们将定义一个名为ExchangeRate的简单类来存储每天的汇率信息。此外,我们还需要编写两个主要函数:fetch_news()用于从指定的URL抓取数据,而save_to_excel()则负责将收集的数据导出为Excel文件。

python"># 本代码仅供学习和教育用途。未经授权,不得用于商业用途。
# 使用本代码进行商业活动所产生的一切后果由使用者自行承担,作者不承担任何责任。import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import datetime
import timeclass ExchangeRate:def __init__(self, day, hlvalue):self.day = dayself.hlvalue = hlvaluedef __repr__(self):return f"ExchangeRate(day={self.day}, hlvalue={self.hlvalue})"def fetch_news(start_day):url = '此处替换为实际地址'try:response = requests.get(url)response.raise_for_status()  # 检查HTTP请求是否成功except requests.RequestException as e:print(f'请求失败: {e}')return []rateList = []soup = BeautifulSoup(response.text, 'lxml')news_items = soup.find_all('temp')for item in news_items:day = item.find('date').text.strip()hlvalue = item.find('hlvalue').text.strip()if day >= start_day:ex1 = ExchangeRate(day.replace('-', '/'), hlvalue)rateList.append(ex1)return rateListdef save_to_excel(data):formatted_date = datetime.now().strftime("%Y-%m-%d")file_path = f'E:/Exchange rate {formatted_date}.xlsx'df = pd.DataFrame([{'日期': ex.day, '汇率': ex.hlvalue} for ex in data])try:with pd.ExcelWriter(file_path, engine='openpyxl') as writer:df.to_excel(writer, index=False)print()print(f'数据已保存至 {file_path}')except Exception as e:print(f'保存数据时出现错误: {e}')if __name__ == '__main__':# 请确保输入正确的日期格式start_day = input("请输入开始日期(格式为yyyy-mm-dd ,如2024-08-01): ")data = fetch_news(start_day)if data:save_to_excel(data)print()print("拜拜啦~~,祝每天都开心!!!")# 程序运行3秒后自动退出time.sleep(3)

抓取数据

fetch_news函数内,我们使用requests库发起GET请求以获取网页内容,接着利用BeautifulSoup对返回的HTML进行解析,从中提取所需的信息——具体而言是每一天的日期及其对应的汇率值。这里需要注意的是,实际网站可能有不同的标签结构,你需要根据实际情况调整选择器。

存储至Excel

一旦我们有了完整的汇率列表,就可以调用save_to_excel函数将其转换成Pandas DataFrame对象,并通过to_excel方法写入到本地文件系统中的Excel表格里。这样不仅方便查看,也便于后续做更深入的数据挖掘或可视化展示。

结论

通过上述步骤,我们能够快速地构建起一个简易但功能齐全的小程序,它能够自动从互联网上获取最新的外汇汇率信息,并且支持用户自定义查询时间范围。这样的项目非常适合初学者学习Web爬虫技术以及基本的数据处理流程。希望这篇文章对你有所帮助!


请注意,上述示例代码仅作为教学目的展示。在实际应用时,请务必遵守目标网站的服务条款及法律法规,尊重版权和个人隐私权。


http://www.ppmy.cn/embedded/128046.html

相关文章

Unity游戏通用框架——UI的管理和加载

需求:为了方便UI的管理,编写一个管理类,管理所有UI的加载、隐藏或销魂,每个UI都继承自一个UIWindow类,存放在Resource的指定目录下,通过UIManager进行管理。每个继承自UIWindow的UI天然有UI的打开关闭等基本…

Python 无法安装pybluez 解决办法

直接使用 pip install pybluez 安装会报错 那么可以尝试手动安装 先下载 pybluez-0.30的包: CSDN: https://download.csdn.net/download/rotion135/89884852 Github:https://github.com/pybluez/pybluez 先安装依赖 sudo apt-get install …

Kafka之生产者

本章内容将整理下Kafka体系结构中的生产者相关的一些知识。 1. 生产者客户端 生产者客户端在Kafka的发展历程当中一共有两个重大版本: 一个是基于Scala语言开发的版本,称为Old Producer或Scala版的生产者客户端。一个是Kafka0.9.x版本之后以Java语言开发…

【微服务】微服务注册:构建灵活的服务管理机制

目录 引言一、什么是微服务注册?1.1 服务注册中心的作用1.2 服务注册中心的工作原理1.3 示意图 二、常见的微服务注册中心2.1 各注册中心详细对比 三、微服务注册的实现方式3.1 Spring Cloud Netflix Eureka3.2 Consul3.3 Zookeeper3.4 etcd 四、微服务注册的注意事…

JavaScript 入门

1. HTML、CSS、JavaScript 之间的关系 HTML:网页的结构(骨) CSS:网页的表现(皮) JavaScript:网页的行为(魂) 2. 引入方式 3种引入方式,语法如下&#xff…

【Unity - 屏幕截图】技术要点

在Unity中想要实现全屏截图或者截取某个对象区域的图片都是可以通过下面的函数进行截取 Texture2D/// <summary>/// <para>Reads the pixels from the current render target (the screen, or a RenderTexture), and writes them to the texture.</para>/…

【unity框架开发起步】一些框架开发思维和工具类封装

文章目录 前言一、Editor操作二、快捷导出unity包三、快捷打开存储目录四、封装概率函数五、方法过时六、partial 关键字&#xff0c;拆开合并类七、从数组中随机取⼀个数值并进⾏返回1、实现2、object 类优化3、泛型&#xff0c;结构复⽤利器4、params 关键字优化 八、abstrac…

产品经理或项目经理考PMP,薪资会不会提高?

你要知道一个事情&#xff0c;薪资和证书不是划等号的。没有公司会为你多一个证书而去给你涨薪&#xff0c;人家也不是傻子。想要提高薪资还得看公司的情况&#xff0c;还有你在公司岗位的价值&#xff0c;自己的能力以及工作上做出的成绩&#xff0c;是跟这些挂钩的。找一家前…