fa45d8aa5f
- 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,直连正常
75 lines
2.4 KiB
Python
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)
|