今天在研究通过财报数据获取公司的利润走势图,使用python爬取网页数据就可以做到了
- 首先是获取网易股票的财报数据
- 然后解析了十年的数据,用总利润减去所得税获取当年利润
- 然后得到了年份和利润的两个数组
- 根据这两个数组通过plt组件画出折线图
生成的折线图:
全部代码如下:
# 股票利润计算
import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
# 股票代码
stock = '000895'
# 通过网易股票的财报获取数据
html_str = f'http://quotes.money.163.com/f10/lrb_{stock}.html?type=year'
# request请求
res = requests.get(html_str)
soup = BeautifulSoup(res.text, 'html.parser')
# html解析获取年份
year_list = soup.find('table', class_='scr_table').findAll('tr')[0].findAll('th')
# 获取总利润
profit_total_list = soup.find('table', class_='scr_table').findAll('tr')[37].findAll('td')
# 获取所得税
tax_expense_list = soup.find('table', class_='scr_table').findAll('tr')[38].findAll('td')
year = []
data = []
# 用总利润减去所得税获得当年利润,加入数组
for i in range(len(profit_total_list)):
year.append(year_list[i].get_text().split('-')[0])
data.append(int(profit_total_list[i].get_text().replace(',', '')) - int(tax_expense_list[i].get_text().replace(',', '')))
year.reverse()
data.reverse()
# 线图
# 调用plt。plot来画图,横轴纵轴两个参数即可
plt.figure(figsize=(10, 6))
plt.title(stock)
plt.plot(year, data)
# 用show展现出来图
plt.show()