利用Python实现财务分析/经营分析自动化

之前写公司研究报告时,所有的数据都是通过翻看招股说明书/年报的PDF获取的,把数字从PDF里复制粘贴到EXCEL里再生成图表的过程非常繁琐,而且容易因为看错行/列摘错数据。使用Python可以实现提取财务数据、计算财务指标、可视化呈现等一系列操作的自动化,加之可以通过爬虫从巨潮资讯、雪球等网站批量获取公司财务报表,在没有专用数据库可用的情况下,Python能为财务大数据分析、大范围的公司研究、行业研究提供极大便利。

一、获取报表
巨潮资讯上的数据最权威,但是各个年度数据是分开存放的,而雪球提供财务数据是各年度都在同一个CSV里。由于经营分析涉及趋势研究,需要连续多年的数据,在数据按年度分为多个文件的情况下还得多进行一次遍历,不是很方便,故这里选择从雪球批量获取财务报表。

import pandas as pd
import requests
from multiprocessing.dummy import Pool as ThreadPool

lrb_base_url = 'http://api.xueqiu.com/stock/f10/incstatement.csv?page=1&size=10000&symbol='
llb_base_url = 'http://api.xueqiu.com/stock/f10/cfstatement.csv?page=1&size=10000&symbol='
fzb_base_url = 'http://api.xueqiu.com/stock/f10/balsheet.csv?page=1&size=10000&symbol='

header = {
   'User-Agent': 'Mozilla/5.0'}

定义利润表、资产负债表、现金流量表的下载函数:

def download_lrb(url):
    r = requests.get(url, headers=headers)
    filename = url.split('=')[-1] + '_lrb.csv'
    print(filename)
    with open(filename, 'wb') as f:
        f.write(r.content)

def download_fzb(url):
    r = requests.get(url, headers=headers)
    filename = url.split('=')[-1] + '_fzb.csv'
    print(filename)
    with open(filename, 'wb') as f:
        f.write(r.content)

def download_llb(url):
    r = requests.get(url, headers=headers)
    filename = url.split('=')[-1] + '_llb.csv'
    print(filename)
    with open(filename, 'wb') as f:
        f.write(r.content)

股票代码.txt存放需要分析的公司的股票代码,格式为SHXXXXXX或SZXXXXXX

with open('股票代码.txt', 'r', encoding='utf-8') as f:
    symbol = [s.strip() for s in f.readlines()]

lrb_urls = [lrb_base_url + i for i in symbol]
fzb_urls = [fzb_base_url + i for i in symbol]
llb_urls = [llb_base_url + i for i in symbol]

pool = ThreadPool(10)
pool.map(download_lrb, lrb_urls)
pool.close
  • 47
    点赞
  • 397
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值