Files
MoFin/venv/lib/python3.12/site-packages/akshare/stock_fundamental/stock_zygc.py
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

77 lines
2.7 KiB
Python

# -*- coding:utf-8 -*-
# !/usr/bin/env python
"""
Date: 2025/5/6 14:30
Desc: 主营构成
https://emweb.securities.eastmoney.com/PC_HSF10/BusinessAnalysis/Index?type=web&code=SH688041#
"""
import pandas as pd
import requests
def stock_zygc_em(symbol: str = "SH688041") -> pd.DataFrame:
"""
东方财富网-个股-主营构成
https://emweb.securities.eastmoney.com/PC_HSF10/BusinessAnalysis/Index?type=web&code=SH688041#
:param symbol: 带市场标识的股票代码
:type symbol: str
:return: 主营构成
:rtype: pandas.DataFrame
"""
url = "https://emweb.securities.eastmoney.com/PC_HSF10/BusinessAnalysis/PageAjax"
params = {"code": symbol}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["zygcfx"])
temp_df.rename(
columns={
"SECUCODE": "-",
"SECURITY_CODE": "股票代码",
"REPORT_DATE": "报告日期",
"MAINOP_TYPE": "分类类型",
"ITEM_NAME": "主营构成",
"MAIN_BUSINESS_INCOME": "主营收入",
"MBI_RATIO": "收入比例",
"MAIN_BUSINESS_COST": "主营成本",
"MBC_RATIO": "成本比例",
"MAIN_BUSINESS_RPOFIT": "主营利润",
"MBR_RATIO": "利润比例",
"GROSS_RPOFIT_RATIO": "毛利率",
"RANK": "-",
},
inplace=True,
)
temp_df = temp_df[
[
"股票代码",
"报告日期",
"分类类型",
"主营构成",
"主营收入",
"收入比例",
"主营成本",
"成本比例",
"主营利润",
"利润比例",
"毛利率",
]
]
temp_df["报告日期"] = pd.to_datetime(temp_df["报告日期"], errors="coerce").dt.date
temp_df["分类类型"] = temp_df["分类类型"].map(
{"1": "按行业分类", "2": "按产品分类", "3": "按地区分类"}
)
temp_df["主营收入"] = pd.to_numeric(temp_df["主营收入"], errors="coerce")
temp_df["收入比例"] = pd.to_numeric(temp_df["收入比例"], errors="coerce")
temp_df["主营成本"] = pd.to_numeric(temp_df["主营成本"], errors="coerce")
temp_df["成本比例"] = pd.to_numeric(temp_df["成本比例"], errors="coerce")
temp_df["主营利润"] = pd.to_numeric(temp_df["主营利润"], errors="coerce")
temp_df["利润比例"] = pd.to_numeric(temp_df["利润比例"], errors="coerce")
temp_df["毛利率"] = pd.to_numeric(temp_df["毛利率"], errors="coerce")
return temp_df
if __name__ == "__main__":
stock_zygc_em_df = stock_zygc_em(symbol="SH688041")
print(stock_zygc_em_df)