Files
MoFin/venv/lib/python3.12/site-packages/akshare/stock/stock_info_em.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

75 lines
2.4 KiB
Python

# -*- coding:utf-8 -*-
# !/usr/bin/env python
"""
Date: 2025/2/15 22:00
Desc: 东方财富网-个股-股票信息
https://quote.eastmoney.com/concept/sh603777.html?from=classic
"""
import pandas as pd
import requests
def stock_individual_info_em(
symbol: str = "603777", timeout: float = None
) -> pd.DataFrame:
"""
东方财富-个股-股票信息
https://quote.eastmoney.com/concept/sh603777.html?from=classic
:param symbol: 股票代码
:type symbol: str
:param timeout: choice of None or a positive float number
:type timeout: float
:return: 股票信息
:rtype: pandas.DataFrame
"""
url = "https://push2.eastmoney.com/api/qt/stock/get"
market_code = 1 if symbol.startswith("6") else 0
params = {
"fltt": "2",
"invt": "2",
"fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,"
"f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,"
"f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,"
"f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,"
"f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,"
"f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,"
"f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295,f43",
"secid": f"{market_code}.{symbol}",
}
r = requests.get(url, params=params, timeout=timeout)
data_json = r.json()
temp_df = pd.DataFrame(data_json)
temp_df.reset_index(inplace=True)
del temp_df["rc"]
del temp_df["rt"]
del temp_df["svr"]
del temp_df["lt"]
del temp_df["full"]
code_name_map = {
"f57": "股票代码",
"f58": "股票简称",
"f84": "总股本",
"f85": "流通股",
"f127": "行业",
"f116": "总市值",
"f117": "流通市值",
"f189": "上市时间",
"f43": "最新",
}
temp_df["index"] = temp_df["index"].map(code_name_map)
temp_df = temp_df[pd.notna(temp_df["index"])]
if "dlmkts" in temp_df.columns:
del temp_df["dlmkts"]
temp_df.columns = [
"item",
"value",
]
temp_df.reset_index(inplace=True, drop=True)
return temp_df
if __name__ == "__main__":
stock_individual_info_em_df = stock_individual_info_em(symbol="000002")
print(stock_individual_info_em_df)