# FinancialAnalysis3 **Repository Path**: roll-0408/financial-analysis3 ## Basic Information - **Project Name**: FinancialAnalysis3 - **Description**: 金融大数据课程学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2025-09-30 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 新浪财经历史分红数据分析工具 ## 项目介绍 本项目旨在帮助用户从新浪财经网站获取历史分红数据,并对其进行预处理,为投资者和研究者的后续分析提供便利。 ## 项目结构 ``` financial-analysis3/ ├── chapter3/ │ ├── sina_dividend_crawler.py # 新浪财经历史分红数据爬取工具 │ ├── sina_dividend_preprocessor.py # 新浪财经历史分红数据预处理工具 ├── 新浪财经历史分红数据.xlsx # 爬取的原始数据文件 └── 新浪财经历史分红数据_预处理.xlsx # 预处理后的数据文件 ``` ## 功能说明 ### 1. 数据爬取工具 (sina_dividend_crawler.py) - 从新浪财经网站爬取历史分红数据 - 支持自定义爬取的起始页码和结束页码 - 将爬取的数据保存为Excel文件 ### 2. 数据预处理工具 (sina_dividend_preprocessor.py) - 读取爬取的原始数据 - 检查数据形状和重复值 - 展示数据前5行,观察数据问题 - 处理上市日期,提取年、月、日变量 - 对数值型变量进行归一化处理 - 将预处理后的数据保存为新的Excel文件 ## 安装依赖 在运行程序之前,需要安装以下Python依赖包: ```bash pip install requests beautifulsoup4 pandas tqdm openpyxl scikit-learn ``` ## 使用方法 ### 1. 数据爬取 运行以下命令爬取新浪财经历史分红数据: ```bash # 爬取第1-100页数据(默认) python chapter3/sina_dividend_crawler.py # 爬取指定范围的页面数据 python chapter3/sina_dividend_crawler.py --start 1 --end 100 # 自定义输出文件名 python chapter3/sina_dividend_crawler.py --output "自定义文件名.xlsx" # 启用调试模式 python chapter3/sina_dividend_crawler.py --debug ``` ### 2. 数据预处理 运行以下命令对爬取的数据进行预处理: ```bash # 使用默认输入和输出文件 python chapter3/sina_dividend_preprocessor.py # 自定义输入和输出文件 python chapter3/sina_dividend_preprocessor.py --input "输入文件名.xlsx" --output "输出文件名.xlsx" ``` ## 数据字段说明 ### 原始数据字段 - **代码**: 股票代码 - **名称**: 股票名称 - **上市日期**: 股票上市日期 - **累计股息(%)**: 累计股息百分比 - **年均股息(%)**: 年均股息百分比 - **分红次数**: 分红次数 - **融资总额(亿)**: 融资总额(单位:亿元) - **融资次数**: 融资次数 - **详细**: 详细信息链接 ### 预处理后新增字段 - **上市年份**: 从上市日期提取的年份 - **上市月份**: 从上市日期提取的月份 - **上市日**: 从上市日期提取的日期 - **累计股息(%)_归一化**: 归一化后的累计股息 - **年均股息(%)_归一化**: 归一化后的年均股息 - **分红次数_归一化**: 归一化后的分红次数 - **融资总额(亿)_归一化**: 归一化后的融资总额 ## 注意事项 1. 爬取数据时,请遵守网站的爬虫规则,避免过于频繁的请求 2. 程序会自动添加随机延迟,避免被封IP 3. 如果遇到网络问题,可以重新运行程序继续爬取 4. 预处理后的数据保留了原始数据的所有字段,并添加了新的处理字段 ## 项目目标 通过本项目,您可以: 1. 掌握网络爬虫技术,能够从新浪财经网站获取历史分红数据 2. 学习数据预处理的方法和技巧,包括数据形状检查、重复值检查、日期变量提取和数据归一化等 3. 为投资决策提供数据支持 ## 开发说明 本项目使用Python 3开发,主要使用了以下库: - **requests**: 用于发送HTTP请求 - **BeautifulSoup4**: 用于解析HTML页面 - **pandas**: 用于数据处理和Excel文件操作 - **tqdm**: 用于显示进度条 - **scikit-learn**: 用于数据归一化处理 ## 许可证 本项目仅供学习和研究使用。