我曾经想知道,在我们所有工作的行业中,哪个行业最赚钱,哪个行业最有钱景,但我不知道如何去衡量,直到有一天,我突然发现,毛利率是个很重要的衡量指标,毛利率的概念为:
毛利率是指一个公司的毛利润与营业收入之比,用于衡量公司产品或服务的成本与销售价格之间的差异。毛利率的计算公式为:
毛利率 = (毛利润 / 营业收入) x 100%
其中,毛利润是指一个公司销售产品或服务所获得的总收入,扣除与产品或服务直接相关的成本。
毛利率可以帮助投资者了解一个公司的盈利能力,特别是在竞争激烈的市场环境中。高毛利率通常意味着公司能够以更高的价格销售其产品或服务,或者拥有较低的成本结构,从而获得更多的利润。
但,我该如何知道这么多公司、这么多行业,各行各业的毛利率情况呢?从网上找找找,终于在某财富网上发现了下图这个表:
这红圈的地方不正是我想找的东西吗? 用Python把数据搞下来,弄起来 ,开始分析网站结构:
泪流满面啊 ,良心网站 ,太棒了,数据封装在json中,不用麻烦用selenium来搞了,也不用想怎么绕过JavaScript了。老铁们,我直接贴代码了。
import requestsimport jsonimport pandas as pdimport timedf=pd.DataFrame()for i in range(1,116): # 目标API的URL api_url = f'https://datacenter-web.eastmoney.com/api/data/v1/get?callback=jQuery112309277037196808329_1709025159383&sortColumns=UPDATE_DATE%2CSECURITY_CODE&sortTypes=-1%2C-1&pageSize=50&pageNumber={i}&reportName=RPT_LICO_FN_CPD&columns=ALL&filter=(REPORTDATE%3D%272023-09-30%27)' header={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36', 'Cookie':'qgqp_b_id=825c36f7c9144ad712285e5527429aab; em_hq_fls=js; intellpositionL=1484px; intellpositionT=1855px; websitepoptg_api_time=1709024039311; st_si=73733076358837; st_asi=delete; st_pvi=05784786603557; st_sp=2021-01-13%2011%3A08%3A03; st_inirUrl=https%3A%2F%2Fwww.so.com%2Flink; st_sn=4; st_psi=20240227171239879-113300301066-1850671218; JSESSIONID=EB98428A92F7ED5EC76E0BF84FCD7A51'} # 发送GET请求到API端点 response = requests.get(api_url,headers=header) #print(response.text) #删除一些不必要的字符,构建json rr=''.join(response.text.split('(')[1:]).split(')')[:-1] data=json.loads(''.join(rr)) #将文件保存到Dateframe结构中。 df1=pd.DataFrame(data['result']['data']) df_new=df1.drop(['TRADE_MARKET_CODE','TRADE_MARKET_CODE','SECURITY_TYPE_CODE','SECURITY_TYPE','UPDATE_DATE','REPORTDATE','DEDUCT_BASIC_EPS','ASSIGNDSCRPT','PAYYEAR','ZXGXL','NOTICE_DATE','ORG_CODE','TRADE_MARKET_ZJG', 'ISNEW','DATATYPE','DATAYEAR','DATEMMDD','EITIME','SECUCODE'],axis=1) df=pd.concat([df,df_new]) #休息一下,避免反爬 time.sleep(0.5)df
跑一遍,Jupyter Notebook中的结果为:
5718家公司的数据就弄下来了,下面,我们保存成csv,顺便把表头的英文换成中文。
col=['股票代码','股票简称','交易市场','每股收益(元)','营业总收入(元)','净利润(元)','资产收益率','营收同比增长','净利润同比增长','每股净资产(元)','每股经营现金流(元)','销售毛利率','营收季度环比增长率','净利润季度环比增长率','所处行业','报表季度']df.columns=coldf.to_csv('东方财富网2023年3季报报表.csv',index=False)
搞定了,CSV文件如下:
后续,我们就可以在这个表上进行数据分析了,从2023年三季报的数据上看看,哪家是毛利率最高的公司?哪个行业毛利最高?