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

102 lines
3.0 KiB
Python

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2025/9/14 18:00
Desc: 基金经理大全
https://fund.eastmoney.com/manager/default.html
"""
import pandas as pd
import requests
from akshare.utils import demjson
from akshare.utils.tqdm import get_tqdm
def fund_manager_em() -> pd.DataFrame:
"""
天天基金网-基金数据-基金经理大全
https://fund.eastmoney.com/manager/default.html
:return: 基金经理大全
:rtype: pandas.DataFrame
"""
big_df = pd.DataFrame()
url = "https://fund.eastmoney.com/Data/FundDataPortfolio_Interface.aspx"
params = {
"dt": "14",
"mc": "returnjson",
"ft": "all",
"pn": "500",
"pi": "1",
"sc": "abbname",
"st": "asc",
}
r = requests.get(url, params=params)
data_text = r.text
data_json = demjson.decode(data_text.strip("var returnjson= "))
total_page = data_json["pages"]
tqdm = get_tqdm()
for page in tqdm(range(1, total_page + 1), leave=False):
params.update(
{
"pi": page,
}
)
r = requests.get(url, params=params)
data_text = r.text
data_json = demjson.decode(data_text.strip("var returnjson= "))
temp_df = pd.DataFrame(data_json["data"])
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
big_df.reset_index(inplace=True)
big_df["index"] = range(1, len(big_df) + 1)
big_df.columns = [
"序号",
"_",
"姓名",
"_",
"所属公司",
"现任基金代码",
"现任基金",
"累计从业时间",
"现任基金最佳回报",
"_",
"_",
"现任基金资产总规模",
"_",
]
big_df = big_df[
[
"序号",
"姓名",
"所属公司",
"现任基金代码",
"现任基金",
"累计从业时间",
"现任基金资产总规模",
"现任基金最佳回报",
]
]
big_df["现任基金最佳回报"] = (
big_df["现任基金最佳回报"].str.split("%", expand=True).iloc[:, 0]
)
big_df["现任基金资产总规模"] = (
big_df["现任基金资产总规模"].str.split("亿元", expand=True).iloc[:, 0]
)
big_df["累计从业时间"] = pd.to_numeric(big_df["累计从业时间"], errors="coerce")
big_df["现任基金最佳回报"] = pd.to_numeric(
big_df["现任基金最佳回报"], errors="coerce"
)
big_df["现任基金资产总规模"] = pd.to_numeric(
big_df["现任基金资产总规模"], errors="coerce"
)
big_df["现任基金代码"] = big_df["现任基金代码"].apply(lambda x: x.split(","))
big_df["现任基金"] = big_df["现任基金"].apply(lambda x: x.split(","))
big_df = big_df.explode(column=["现任基金代码", "现任基金"])
big_df.reset_index(drop=True, inplace=True)
return big_df
if __name__ == "__main__":
fund_manager_em_df = fund_manager_em()
print(fund_manager_em_df)