利用数据采集中的read_html()从新浪财经页面爬取任意一家公司的任意连续3个年度的资产负债表,并将3年数据合并写入excel文档
时间: 2024-12-16 12:16:41 浏览: 95
在Python中,我们可以使用`pandas_datareader`库结合`read_html()`函数来抓取新浪财经的数据,然后利用`pandas`库处理和合并数据。以下是一个基本的步骤:
首先,需要安装所需的库(如果还没有安装):
```bash
pip install pandas_datareader requests
```
然后,可以按照下面的代码示例获取指定公司的3个连续年度的资产负债表:
```python
import pandas as pd
from pandas_datareader import wb
import datetime
# 替换为你要查询的公司代码和起止日期
company_code = '000001' # 示例为中国平安证券代码
start_year = 2019
end_year = start_year + 2
# 创建一个空列表用于存储每年的数据
data_list = []
for year in range(start_year, end_year+1):
# 设置URL
url = f"https://vip.stock.finance.sina.com.cn/q/go.php/vFinanceStatement/kind/{company_code}/diryear/{year}/page/1/index.phtml"
# 使用read_html读取HTML页面并选择包含资产负债表信息的部分
df_temp = pd.read_html(url, header=0)[4] # 注意这里的索引可能因网页结构变化而调整
if not df_temp.empty:
# 对数据进行初步清洗(例如:去掉非数字列)
df_temp = df_temp.select_dtypes(include=[np.number])
# 添加年份列
df_temp['Year'] = year
# 将数据添加到列表中
data_list.append(df_temp)
# 合并所有年的数据
df_all = pd.concat(data_list)
# 写入Excel文件
today = datetime.date.today().strftime('%Y%m%d')
filename = f"{company_code}_balance_sheet_{start_year}_{end_year}.xlsx"
df_all.to_excel(filename, index=False)
阅读全文
相关推荐

















