akshare 1.12.99__py3-none-any.whl → 1.15.73__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of akshare might be problematic. Click here for more details.
- akshare/__init__.py +442 -138
- akshare/air/air_hebei.py +79 -53
- akshare/air/air_zhenqi.py +29 -43
- akshare/air/sunrise_tad.py +32 -17
- akshare/bank/bank_cbirc_2020.py +12 -9
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +75 -48
- akshare/bond/bond_info_cm.py +28 -8
- akshare/bond/bond_issue_cninfo.py +73 -30
- akshare/bond/bond_zh_cov.py +1 -1
- akshare/bond/bond_zh_sina.py +57 -51
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/currency/currency_safe.py +7 -6
- akshare/data/cninfo.js +15 -0
- akshare/datasets.py +10 -21
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_china.py +772 -1024
- akshare/economic/macro_china_hk.py +65 -243
- akshare/economic/macro_china_nbs.py +24 -7
- akshare/economic/macro_constitute.py +17 -12
- akshare/economic/macro_euro.py +13 -6
- akshare/economic/macro_finance_ths.py +133 -0
- akshare/economic/macro_info_ws.py +100 -0
- akshare/economic/macro_japan.py +5 -4
- akshare/economic/macro_other.py +12 -9
- akshare/economic/macro_usa.py +376 -1940
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +94 -125
- akshare/event/migration.py +3 -2
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/fortune/fortune_500.py +15 -48
- akshare/fund/fund_amac.py +157 -75
- akshare/fund/fund_em.py +191 -184
- akshare/fund/fund_etf_em.py +16 -15
- akshare/fund/fund_etf_sina.py +71 -23
- akshare/fund/fund_etf_ths.py +93 -0
- akshare/fund/fund_fee_em.py +98 -0
- akshare/fund/fund_portfolio_em.py +60 -50
- akshare/fund/fund_rank_em.py +91 -82
- akshare/fund/fund_report_cninfo.py +63 -48
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +139 -109
- akshare/futures/cons.py +8 -31
- akshare/futures/cot.py +185 -137
- akshare/futures/futures_basis.py +97 -32
- akshare/futures/futures_comm_ctp.py +37 -0
- akshare/futures/futures_comm_qihuo.py +74 -45
- akshare/futures/futures_daily_bar.py +121 -184
- akshare/futures/futures_hf_em.py +66 -61
- akshare/futures/futures_hq_sina.py +79 -61
- akshare/futures/futures_index_ccidx.py +6 -3
- akshare/futures/futures_inventory_99.py +61 -272
- akshare/futures/futures_news_shmet.py +4 -2
- akshare/futures/futures_roll_yield.py +12 -25
- akshare/futures/futures_spot_stock_em.py +19 -13
- akshare/futures/futures_stock_js.py +14 -12
- akshare/futures/futures_to_spot.py +38 -33
- akshare/futures/futures_warehouse_receipt.py +75 -71
- akshare/futures/futures_zh_sina.py +5 -5
- akshare/futures/symbol_var.py +18 -13
- akshare/futures_derivative/futures_contract_info_czce.py +60 -52
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
- akshare/futures_derivative/futures_cot_sina.py +26 -19
- akshare/futures_derivative/futures_spot_sys.py +21 -8
- akshare/fx/currency_investing.py +19 -285
- akshare/index/index_cflp.py +29 -26
- akshare/index/index_cni.py +86 -88
- akshare/index/index_cons.py +26 -10
- akshare/index/index_cx.py +248 -47
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_option_qvix.py +329 -0
- akshare/index/index_research_fund_sw.py +134 -0
- akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +35 -16
- akshare/index/index_stock_us_sina.py +1 -1
- akshare/index/index_stock_zh.py +180 -89
- akshare/index/index_stock_zh_csindex.py +15 -369
- akshare/index/index_sw.py +62 -34
- akshare/index/index_yw.py +46 -23
- akshare/index/index_zh_a_scope.py +48 -0
- akshare/index/index_zh_em.py +6 -4
- akshare/interest_rate/interbank_rate_em.py +14 -9
- akshare/movie/artist_yien.py +32 -5
- akshare/movie/movie_yien.py +92 -18
- akshare/movie/video_yien.py +28 -5
- akshare/news/news_baidu.py +78 -44
- akshare/news/news_cctv.py +38 -38
- akshare/news/news_stock.py +6 -3
- akshare/nlp/nlp_interface.py +7 -8
- akshare/option/cons.py +11 -11
- akshare/option/option_comm_qihuo.py +86 -0
- akshare/option/option_commodity.py +178 -51
- akshare/option/option_daily_stats_sse_szse.py +146 -0
- akshare/option/option_em.py +147 -138
- akshare/option/option_finance_sina.py +160 -137
- akshare/option/option_lhb_em.py +62 -56
- akshare/option/option_risk_indicator_sse.py +17 -14
- akshare/other/other_car_cpca.py +934 -0
- akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/request.py +117 -0
- akshare/spot/spot_hog_soozhu.py +232 -0
- akshare/spot/spot_price_qh.py +121 -0
- akshare/spot/spot_sge.py +63 -10
- akshare/stock/stock_allotment_cninfo.py +10 -9
- akshare/stock/stock_board_concept_em.py +23 -14
- akshare/stock/stock_board_industry_em.py +40 -34
- akshare/stock/stock_cg_equity_mortgage.py +15 -11
- akshare/stock/stock_cg_guarantee.py +41 -51
- akshare/stock/stock_cg_lawsuit.py +36 -35
- akshare/stock/stock_dividend_cninfo.py +12 -6
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +332 -84
- akshare/stock/stock_hk_famous.py +108 -0
- akshare/stock/stock_hk_sina.py +8 -7
- akshare/stock/stock_hold_control_cninfo.py +100 -15
- akshare/stock/stock_hold_control_em.py +4 -3
- akshare/stock/stock_hold_num_cninfo.py +18 -12
- akshare/stock/stock_hot_rank_em.py +2 -1
- akshare/stock/stock_hot_search_baidu.py +5 -2
- akshare/stock/stock_industry_cninfo.py +24 -18
- akshare/stock/stock_industry_pe_cninfo.py +45 -31
- akshare/stock/stock_industry_sw.py +9 -10
- akshare/stock/stock_info.py +25 -15
- akshare/stock/stock_info_em.py +5 -2
- akshare/stock/stock_intraday_em.py +5 -2
- akshare/stock/stock_intraday_sina.py +22 -18
- akshare/stock/stock_ipo_summary_cninfo.py +25 -10
- akshare/stock/stock_new_cninfo.py +32 -19
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +9 -8
- akshare/stock/stock_rank_forecast.py +8 -6
- akshare/stock/stock_share_changes_cninfo.py +18 -14
- akshare/stock/stock_share_hold.py +24 -19
- akshare/stock/stock_summary.py +54 -26
- akshare/stock/stock_us_famous.py +15 -6
- akshare/stock/stock_us_pink.py +7 -5
- akshare/stock/stock_us_sina.py +15 -12
- akshare/stock/stock_xq.py +38 -12
- akshare/stock/stock_zh_a_sina.py +53 -78
- akshare/stock/stock_zh_b_sina.py +32 -55
- akshare/stock/stock_zh_kcb_report.py +11 -9
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
- akshare/stock_feature/stock_a_high_low.py +5 -2
- akshare/stock_feature/stock_a_indicator.py +12 -9
- akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
- akshare/stock_feature/stock_account_em.py +58 -40
- akshare/stock_feature/stock_analyst_em.py +36 -27
- akshare/stock_feature/stock_board_industry_ths.py +136 -400
- akshare/stock_feature/stock_comment_em.py +118 -85
- akshare/stock_feature/stock_concept_futu.py +183 -0
- akshare/stock_feature/stock_cyq_em.py +58 -54
- akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
- akshare/stock_feature/stock_esg_sina.py +216 -11
- akshare/stock_feature/stock_fhps_em.py +60 -25
- akshare/stock_feature/stock_fhps_ths.py +25 -6
- akshare/stock_feature/stock_fund_flow.py +38 -25
- akshare/stock_feature/stock_gdfx_em.py +180 -95
- akshare/stock_feature/stock_gdhs.py +73 -49
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_hist_em.py +55 -23
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hsgt_em.py +184 -452
- akshare/stock_feature/stock_info.py +52 -29
- akshare/stock_feature/stock_inner_trade_xq.py +39 -31
- akshare/stock_feature/stock_irm_cninfo.py +32 -9
- akshare/stock_feature/stock_jgdy_em.py +41 -38
- akshare/stock_feature/stock_lh_yybpm.py +36 -37
- akshare/stock_feature/stock_lhb_em.py +135 -71
- akshare/stock_feature/stock_lhb_sina.py +93 -46
- akshare/stock_feature/stock_margin_em.py +102 -0
- akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
- akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
- akshare/stock_feature/stock_market_legu.py +13 -8
- akshare/stock_feature/stock_pankou_em.py +72 -34
- akshare/stock_feature/stock_report_em.py +244 -54
- akshare/stock_feature/stock_research_report_em.py +48 -19
- akshare/stock_feature/stock_sns_sseinfo.py +15 -12
- akshare/stock_feature/stock_sy_em.py +86 -33
- akshare/stock_feature/stock_technology_ths.py +152 -120
- akshare/stock_feature/stock_tfp_em.py +35 -13
- akshare/stock_feature/stock_three_report_em.py +119 -77
- akshare/stock_feature/stock_ttm_lyr.py +4 -7
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_wencai.py +21 -9
- akshare/stock_feature/stock_yjyg_em.py +63 -28
- akshare/stock_feature/stock_zf_pg.py +61 -38
- akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
- akshare/stock_feature/stock_ztb_em.py +62 -40
- akshare/stock_fundamental/stock_finance.py +150 -58
- akshare/stock_fundamental/stock_finance_ths.py +116 -31
- akshare/stock_fundamental/stock_mda_ym.py +5 -3
- akshare/stock_fundamental/stock_notice.py +29 -15
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
- akshare/stock_fundamental/stock_register_em.py +448 -0
- akshare/stock_fundamental/stock_restricted_em.py +79 -32
- akshare/stock_fundamental/stock_zygc.py +10 -8
- akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
- akshare/tool/trade_date_hist.py +4 -3
- akshare/utils/cons.py +10 -0
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2 -2
- akshare/utils/func.py +26 -0
- akshare/utils/tqdm.py +13 -3
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/METADATA +52 -69
- akshare-1.15.73.dist-info/RECORD +385 -0
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/WHEEL +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fortune/fortune_it_juzi.py +0 -123
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -71
- akshare/index/index_investing.py +0 -232
- akshare/sport/sport_olympic_winter.py +0 -39
- akshare/stock_feature/stock_board_concept_ths.py +0 -422
- akshare/stock_fundamental/stock_register.py +0 -292
- akshare-1.12.99.dist-info/RECORD +0 -374
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/LICENSE +0 -0
- {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/top_level.txt +0 -0
akshare/fund/fund_amac.py
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/4/29 16:00
|
|
5
5
|
Desc: 中国证券投资基金业协会-信息公示数据
|
|
6
6
|
中国证券投资基金业协会-新版: https://gs.amac.org.cn
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
|
-
from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
|
11
|
-
from tqdm import tqdm
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
from akshare.utils.tqdm import get_tqdm
|
|
13
|
+
|
|
14
|
+
headers = {
|
|
15
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
16
|
+
"Chrome/123.0.0.0 Safari/537.36",
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
}
|
|
14
19
|
|
|
15
20
|
|
|
16
21
|
def _get_pages(url: str = "", payload: str = "") -> pd.DataFrame:
|
|
@@ -18,10 +23,7 @@ def _get_pages(url: str = "", payload: str = "") -> pd.DataFrame:
|
|
|
18
23
|
中国证券投资基金业协会-信息公示-私募基金管理人公示 页数
|
|
19
24
|
暂时不使用本函数, 直接可以获取所有数据
|
|
20
25
|
"""
|
|
21
|
-
|
|
22
|
-
"Content-Type": "application/json",
|
|
23
|
-
}
|
|
24
|
-
res = requests.post(url=url, json=payload, headers=headers, verify=False)
|
|
26
|
+
res = requests.post(url=url, json=payload, headers=headers)
|
|
25
27
|
res.encoding = "utf-8"
|
|
26
28
|
json_df = res.json()
|
|
27
29
|
return json_df["totalPages"]
|
|
@@ -31,10 +33,7 @@ def get_data(url: str = "", payload: str = "") -> pd.DataFrame:
|
|
|
31
33
|
"""
|
|
32
34
|
中国证券投资基金业协会-信息公示-私募基金管理人公示
|
|
33
35
|
"""
|
|
34
|
-
|
|
35
|
-
"Content-Type": "application/json",
|
|
36
|
-
}
|
|
37
|
-
res = requests.post(url=url, json=payload, headers=headers, verify=False)
|
|
36
|
+
res = requests.post(url=url, json=payload, headers=headers)
|
|
38
37
|
res.encoding = "utf-8"
|
|
39
38
|
json_df = res.json()
|
|
40
39
|
return json_df
|
|
@@ -45,7 +44,7 @@ def get_data(url: str = "", payload: str = "") -> pd.DataFrame:
|
|
|
45
44
|
def amac_member_info() -> pd.DataFrame:
|
|
46
45
|
"""
|
|
47
46
|
中国证券投资基金业协会-信息公示-会员信息-会员机构综合查询
|
|
48
|
-
|
|
47
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/member/index.html
|
|
49
48
|
:return: 会员机构综合查询
|
|
50
49
|
:rtype: pandas.DataFrame
|
|
51
50
|
"""
|
|
@@ -53,15 +52,16 @@ def amac_member_info() -> pd.DataFrame:
|
|
|
53
52
|
params = {
|
|
54
53
|
"rand": "0.7665138514630696",
|
|
55
54
|
"page": "1",
|
|
56
|
-
"size": "
|
|
55
|
+
"size": "20",
|
|
57
56
|
}
|
|
58
|
-
r = requests.post(url, params=params, json={},
|
|
57
|
+
r = requests.post(url, params=params, json={}, headers=headers)
|
|
59
58
|
data_json = r.json()
|
|
60
59
|
total_page = data_json["totalPages"]
|
|
61
60
|
big_df = pd.DataFrame()
|
|
61
|
+
tqdm = get_tqdm()
|
|
62
62
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
63
63
|
params.update({"page": page})
|
|
64
|
-
r = requests.post(url, params=params, json={},
|
|
64
|
+
r = requests.post(url, params=params, json={}, headers=headers)
|
|
65
65
|
data_json = r.json()
|
|
66
66
|
temp_df = pd.DataFrame(data_json["content"])
|
|
67
67
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -97,30 +97,66 @@ def amac_person_fund_org_list(symbol: str = "公募基金管理公司") -> pd.Da
|
|
|
97
97
|
"""
|
|
98
98
|
中国证券投资基金业协会-信息公示-从业人员信息-基金从业人员资格注册信息
|
|
99
99
|
https://gs.amac.org.cn/amac-infodisc/res/pof/person/personOrgList.html
|
|
100
|
-
:param symbol: choice of {"公募基金管理公司", "公募基金管理公司资管子公司", "商业银行", "证券公司", "证券公司子公司",
|
|
100
|
+
:param symbol: choice of {"公募基金管理公司", "公募基金管理公司资管子公司", "商业银行", "证券公司", "证券公司子公司",
|
|
101
|
+
"私募基金管理人", "保险公司子公司", "保险公司", "外包服务机构", "期货公司", "期货公司资管子公司", "媒体机构",
|
|
102
|
+
"证券投资咨询机构", "评价机构", "外资私募证券基金管理人", "支付结算", "独立服务机构", "地方自律组织", "境外机构",
|
|
103
|
+
"律师事务所", "会计师事务所", "交易所", "独立第三方销售机构", "证券公司资管子公司", "证券公司私募基金子公司", "其他"}
|
|
101
104
|
:type symbol: str
|
|
102
105
|
:return: 基金从业人员资格注册信息
|
|
103
106
|
:rtype: pandas.DataFrame
|
|
104
107
|
"""
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
+
symbol_map = {
|
|
109
|
+
"保险公司子公司": "bxgszgs",
|
|
110
|
+
"期货公司资管子公司": "qhgszgzgs",
|
|
111
|
+
"公募基金管理公司资管子公司": "gmjjglgszgzgs",
|
|
112
|
+
"商业银行": "syyh",
|
|
113
|
+
"交易所": "jys",
|
|
114
|
+
"证券公司私募基金子公司": "zqgssmjjzgs",
|
|
115
|
+
"地方自律组织": "dfzlzz",
|
|
116
|
+
"证券公司": "zqgs",
|
|
117
|
+
"评价机构": "pjjg",
|
|
118
|
+
"独立第三方销售机构": "dldsfxsjg",
|
|
119
|
+
"证券投资咨询机构": "zqtzzxjg",
|
|
120
|
+
"外资私募证券基金管理人": "wzsmzqjjglr",
|
|
121
|
+
"境外机构": "jwjg",
|
|
122
|
+
"证券公司子公司": "zqgszgs",
|
|
123
|
+
"公募基金管理公司": "gmjjglgs",
|
|
124
|
+
"媒体机构": "mtjg",
|
|
125
|
+
"支付结算": "zfjs",
|
|
126
|
+
"证券公司资管子公司": "zqgszgzgs",
|
|
127
|
+
"会计师事务所": "kjssws",
|
|
128
|
+
"独立服务机构": "dlfwjg",
|
|
129
|
+
"律师事务所": "lssws",
|
|
130
|
+
"期货公司": "qhgs",
|
|
131
|
+
"保险公司": "bxgs",
|
|
132
|
+
"其他": "qt",
|
|
133
|
+
"外包服务机构": "wbfwjg",
|
|
134
|
+
"私募基金管理人": "smjjglr",
|
|
135
|
+
}
|
|
108
136
|
url = "https://gs.amac.org.cn/amac-infodisc/api/pof/personOrg"
|
|
109
137
|
params = {
|
|
110
138
|
"rand": "0.7665138514630696",
|
|
111
139
|
"page": "1",
|
|
112
|
-
"size": "
|
|
140
|
+
"size": "20",
|
|
113
141
|
}
|
|
114
142
|
r = requests.post(
|
|
115
|
-
url,
|
|
143
|
+
url,
|
|
144
|
+
params=params,
|
|
145
|
+
json={"orgType": symbol_map[symbol], "page": "1"},
|
|
146
|
+
headers=headers,
|
|
116
147
|
)
|
|
117
148
|
data_json = r.json()
|
|
118
149
|
total_page = data_json["totalPages"]
|
|
119
150
|
big_df = pd.DataFrame()
|
|
151
|
+
tqdm = get_tqdm()
|
|
120
152
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
121
153
|
params.update({"page": page})
|
|
122
154
|
r = requests.post(
|
|
123
|
-
url,
|
|
155
|
+
url,
|
|
156
|
+
params=params,
|
|
157
|
+
json={"orgType": symbol_map[symbol], "page": "1"},
|
|
158
|
+
verify=False,
|
|
159
|
+
headers=headers,
|
|
124
160
|
)
|
|
125
161
|
data_json = r.json()
|
|
126
162
|
temp_df = pd.DataFrame(data_json["content"])
|
|
@@ -137,7 +173,7 @@ def amac_person_fund_org_list(symbol: str = "公募基金管理公司") -> pd.Da
|
|
|
137
173
|
manager_data_out = pd.DataFrame(big_df)
|
|
138
174
|
manager_data_out = manager_data_out[keys_list]
|
|
139
175
|
manager_data_out.reset_index(inplace=True)
|
|
140
|
-
manager_data_out[
|
|
176
|
+
manager_data_out["index"] = manager_data_out.index + 1
|
|
141
177
|
manager_data_out.columns = [
|
|
142
178
|
"序号",
|
|
143
179
|
"机构名称",
|
|
@@ -148,11 +184,13 @@ def amac_person_fund_org_list(symbol: str = "公募基金管理公司") -> pd.Da
|
|
|
148
184
|
"基金经理",
|
|
149
185
|
"投资经理",
|
|
150
186
|
]
|
|
151
|
-
manager_data_out[
|
|
152
|
-
manager_data_out[
|
|
153
|
-
manager_data_out[
|
|
154
|
-
|
|
155
|
-
|
|
187
|
+
manager_data_out["员工人数"] = pd.to_numeric(manager_data_out["员工人数"])
|
|
188
|
+
manager_data_out["基金从业资格"] = pd.to_numeric(manager_data_out["基金从业资格"])
|
|
189
|
+
manager_data_out["基金销售业务资格"] = pd.to_numeric(
|
|
190
|
+
manager_data_out["基金销售业务资格"]
|
|
191
|
+
)
|
|
192
|
+
manager_data_out["基金经理"] = pd.to_numeric(manager_data_out["基金经理"])
|
|
193
|
+
manager_data_out["投资经理"] = pd.to_numeric(manager_data_out["投资经理"])
|
|
156
194
|
return manager_data_out
|
|
157
195
|
|
|
158
196
|
|
|
@@ -164,9 +202,16 @@ def amac_person_bond_org_list() -> pd.DataFrame:
|
|
|
164
202
|
:return: 债券投资交易相关人员公示
|
|
165
203
|
:rtype: pandas.DataFrame
|
|
166
204
|
"""
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
205
|
+
import urllib3
|
|
206
|
+
import ssl
|
|
207
|
+
|
|
208
|
+
ctx = ssl.create_default_context()
|
|
209
|
+
ctx.options |= ssl.OP_LEGACY_SERVER_CONNECT
|
|
210
|
+
# 使用自定义的 SSL 上下文发起 HTTPS 请求
|
|
211
|
+
http = urllib3.PoolManager(ssl_context=ctx)
|
|
212
|
+
|
|
213
|
+
url = "https://human.amac.org.cn/web/api/publicityAddress?rand=0.6288001872566391&pageNum=1&pageSize=5000"
|
|
214
|
+
r = http.request(method="GET", url=url)
|
|
170
215
|
data_json = r.json()
|
|
171
216
|
temp_df = pd.DataFrame(data_json["list"])
|
|
172
217
|
temp_df.reset_index(inplace=True)
|
|
@@ -195,7 +240,7 @@ def amac_person_bond_org_list() -> pd.DataFrame:
|
|
|
195
240
|
def amac_manager_info() -> pd.DataFrame:
|
|
196
241
|
"""
|
|
197
242
|
中国证券投资基金业协会-信息公示-私募基金管理人公示-私募基金管理人综合查询
|
|
198
|
-
|
|
243
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/manager/index.html
|
|
199
244
|
:return: 私募基金管理人综合查询
|
|
200
245
|
:rtype: pandas.DataFrame
|
|
201
246
|
"""
|
|
@@ -205,13 +250,14 @@ def amac_manager_info() -> pd.DataFrame:
|
|
|
205
250
|
"page": "1",
|
|
206
251
|
"size": "100",
|
|
207
252
|
}
|
|
208
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
253
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
209
254
|
data_json = r.json()
|
|
210
255
|
total_page = data_json["totalPages"]
|
|
211
256
|
big_df = pd.DataFrame()
|
|
257
|
+
tqdm = get_tqdm()
|
|
212
258
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
213
259
|
params.update({"page": page})
|
|
214
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
260
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
215
261
|
data_json = r.json()
|
|
216
262
|
temp_df = pd.DataFrame(data_json["content"])
|
|
217
263
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -248,7 +294,7 @@ def amac_manager_info() -> pd.DataFrame:
|
|
|
248
294
|
def amac_manager_classify_info() -> pd.DataFrame:
|
|
249
295
|
"""
|
|
250
296
|
中国证券投资基金业协会-信息公示-私募基金管理人公示-私募基金管理人分类公示
|
|
251
|
-
|
|
297
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/manager/managerList.html
|
|
252
298
|
:return: 私募基金管理人分类公示
|
|
253
299
|
:rtype: pandas.DataFrame
|
|
254
300
|
"""
|
|
@@ -258,13 +304,14 @@ def amac_manager_classify_info() -> pd.DataFrame:
|
|
|
258
304
|
"page": "1",
|
|
259
305
|
"size": "100",
|
|
260
306
|
}
|
|
261
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
307
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
262
308
|
data_json = r.json()
|
|
263
309
|
total_page = data_json["totalPages"]
|
|
264
310
|
big_df = pd.DataFrame()
|
|
311
|
+
tqdm = get_tqdm()
|
|
265
312
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
266
313
|
params.update({"page": page})
|
|
267
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
314
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
268
315
|
data_json = r.json()
|
|
269
316
|
temp_df = pd.DataFrame(data_json["content"])
|
|
270
317
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -305,8 +352,12 @@ def amac_manager_classify_info() -> pd.DataFrame:
|
|
|
305
352
|
manager_data_out["登记时间"], unit="ms"
|
|
306
353
|
).dt.date
|
|
307
354
|
manager_data_out["在管基金数量"] = pd.to_numeric(manager_data_out["在管基金数量"])
|
|
308
|
-
manager_data_out["是否有提示信息"] = manager_data_out["是否有提示信息"].map(
|
|
309
|
-
|
|
355
|
+
manager_data_out["是否有提示信息"] = manager_data_out["是否有提示信息"].map(
|
|
356
|
+
{True: "是", False: "否"}
|
|
357
|
+
)
|
|
358
|
+
manager_data_out["是否有诚信信息"] = manager_data_out["是否有诚信信息"].map(
|
|
359
|
+
{True: "是", False: "否"}
|
|
360
|
+
)
|
|
310
361
|
return manager_data_out
|
|
311
362
|
|
|
312
363
|
|
|
@@ -314,7 +365,7 @@ def amac_manager_classify_info() -> pd.DataFrame:
|
|
|
314
365
|
def amac_member_sub_info() -> pd.DataFrame:
|
|
315
366
|
"""
|
|
316
367
|
中国证券投资基金业协会-信息公示-私募基金管理人公示-证券公司私募基金子公司管理人信息公示
|
|
317
|
-
|
|
368
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/member/index.html?primaryInvestType=private
|
|
318
369
|
:return: 证券公司私募基金子公司管理人信息公示
|
|
319
370
|
:rtype: pandas.DataFrame
|
|
320
371
|
"""
|
|
@@ -324,13 +375,14 @@ def amac_member_sub_info() -> pd.DataFrame:
|
|
|
324
375
|
"page": "1",
|
|
325
376
|
"size": "100",
|
|
326
377
|
}
|
|
327
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
378
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
328
379
|
data_json = r.json()
|
|
329
380
|
total_page = data_json["totalPages"]
|
|
330
381
|
big_df = pd.DataFrame()
|
|
382
|
+
tqdm = get_tqdm()
|
|
331
383
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
332
384
|
params.update({"page": page})
|
|
333
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
385
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
334
386
|
data_json = r.json()
|
|
335
387
|
temp_df = pd.DataFrame(data_json["content"])
|
|
336
388
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -360,7 +412,7 @@ def amac_member_sub_info() -> pd.DataFrame:
|
|
|
360
412
|
|
|
361
413
|
# 中国证券投资基金业协会-信息公示-基金产品
|
|
362
414
|
# 中国证券投资基金业协会-信息公示-基金产品-私募基金管理人基金产品
|
|
363
|
-
def amac_fund_info(start_page: str =
|
|
415
|
+
def amac_fund_info(start_page: str = "1", end_page: str = "2000") -> pd.DataFrame:
|
|
364
416
|
"""
|
|
365
417
|
中国证券投资基金业协会-信息公示-基金产品-私募基金管理人基金产品
|
|
366
418
|
https://gs.amac.org.cn/amac-infodisc/res/pof/fund/index.html
|
|
@@ -377,7 +429,7 @@ def amac_fund_info(start_page: str = '1', end_page: str = "2000") -> pd.DataFram
|
|
|
377
429
|
"page": "1",
|
|
378
430
|
"size": "100",
|
|
379
431
|
}
|
|
380
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
432
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
381
433
|
data_json = r.json()
|
|
382
434
|
total_page = int(data_json["totalPages"])
|
|
383
435
|
if total_page > int(end_page):
|
|
@@ -385,12 +437,13 @@ def amac_fund_info(start_page: str = '1', end_page: str = "2000") -> pd.DataFram
|
|
|
385
437
|
else:
|
|
386
438
|
real_end_page = total_page
|
|
387
439
|
big_df = pd.DataFrame()
|
|
440
|
+
tqdm = get_tqdm()
|
|
388
441
|
for page in tqdm(range(int(start_page) - 1, real_end_page), leave=False):
|
|
389
442
|
params.update({"page": page})
|
|
390
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
443
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
391
444
|
data_json = r.json()
|
|
392
445
|
temp_df = pd.DataFrame(data_json["content"])
|
|
393
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
446
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
394
447
|
keys_list = [
|
|
395
448
|
"fundName",
|
|
396
449
|
"managerName",
|
|
@@ -400,7 +453,7 @@ def amac_fund_info(start_page: str = '1', end_page: str = "2000") -> pd.DataFram
|
|
|
400
453
|
"establishDate",
|
|
401
454
|
"mandatorName",
|
|
402
455
|
] # 定义要取的 value 的 keys
|
|
403
|
-
manager_data_out = big_df[keys_list]
|
|
456
|
+
manager_data_out = big_df[keys_list].copy()
|
|
404
457
|
manager_data_out.columns = [
|
|
405
458
|
"基金名称",
|
|
406
459
|
"私募基金管理人名称",
|
|
@@ -423,7 +476,7 @@ def amac_fund_info(start_page: str = '1', end_page: str = "2000") -> pd.DataFram
|
|
|
423
476
|
def amac_securities_info() -> pd.DataFrame:
|
|
424
477
|
"""
|
|
425
478
|
中国证券投资基金业协会-信息公示-基金产品公示-证券公司集合资管产品公示
|
|
426
|
-
|
|
479
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/securities/index.html
|
|
427
480
|
:return: 证券公司集合资管产品公示
|
|
428
481
|
:rtype: pandas.DataFrame
|
|
429
482
|
"""
|
|
@@ -433,13 +486,14 @@ def amac_securities_info() -> pd.DataFrame:
|
|
|
433
486
|
"page": "1",
|
|
434
487
|
"size": "100",
|
|
435
488
|
}
|
|
436
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
489
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
437
490
|
data_json = r.json()
|
|
438
491
|
total_page = data_json["totalPages"]
|
|
439
492
|
big_df = pd.DataFrame()
|
|
493
|
+
tqdm = get_tqdm()
|
|
440
494
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
441
495
|
params.update({"page": page})
|
|
442
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
496
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
443
497
|
data_json = r.json()
|
|
444
498
|
temp_df = pd.DataFrame(data_json["content"])
|
|
445
499
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -476,7 +530,7 @@ def amac_securities_info() -> pd.DataFrame:
|
|
|
476
530
|
def amac_aoin_info() -> pd.DataFrame:
|
|
477
531
|
"""
|
|
478
532
|
中国证券投资基金业协会-信息公示-基金产品公示-证券公司直投基金
|
|
479
|
-
|
|
533
|
+
https://gs.amac.org.cn/amac-infodisc/res/aoin/product/index.html
|
|
480
534
|
:return: 证券公司直投基金
|
|
481
535
|
:rtype: pandas.DataFrame
|
|
482
536
|
"""
|
|
@@ -486,13 +540,14 @@ def amac_aoin_info() -> pd.DataFrame:
|
|
|
486
540
|
"page": "1",
|
|
487
541
|
"size": "100",
|
|
488
542
|
}
|
|
489
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
543
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
490
544
|
data_json = r.json()
|
|
491
545
|
total_page = data_json["totalPages"]
|
|
492
546
|
big_df = pd.DataFrame()
|
|
547
|
+
tqdm = get_tqdm()
|
|
493
548
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
494
549
|
params.update({"page": page})
|
|
495
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
550
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
496
551
|
data_json = r.json()
|
|
497
552
|
temp_df = pd.DataFrame(data_json["content"])
|
|
498
553
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -512,7 +567,9 @@ def amac_aoin_info() -> pd.DataFrame:
|
|
|
512
567
|
"管理机构",
|
|
513
568
|
"设立日期",
|
|
514
569
|
]
|
|
515
|
-
manager_data_out["设立日期"] = pd.to_datetime(
|
|
570
|
+
manager_data_out["设立日期"] = pd.to_datetime(
|
|
571
|
+
manager_data_out["设立日期"], unit="ms"
|
|
572
|
+
).dt.date
|
|
516
573
|
return manager_data_out
|
|
517
574
|
|
|
518
575
|
|
|
@@ -520,7 +577,7 @@ def amac_aoin_info() -> pd.DataFrame:
|
|
|
520
577
|
def amac_fund_sub_info() -> pd.DataFrame:
|
|
521
578
|
"""
|
|
522
579
|
中国证券投资基金业协会-信息公示-基金产品公示-证券公司私募投资基金
|
|
523
|
-
|
|
580
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/subfund/index.html
|
|
524
581
|
:return: 证券公司私募投资基金
|
|
525
582
|
:rtype: pandas.DataFrame
|
|
526
583
|
"""
|
|
@@ -530,13 +587,14 @@ def amac_fund_sub_info() -> pd.DataFrame:
|
|
|
530
587
|
"page": "1",
|
|
531
588
|
"size": "100",
|
|
532
589
|
}
|
|
533
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
590
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
534
591
|
data_json = r.json()
|
|
535
592
|
total_page = data_json["totalPages"]
|
|
536
593
|
big_df = pd.DataFrame()
|
|
594
|
+
tqdm = get_tqdm()
|
|
537
595
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
538
596
|
params.update({"page": page})
|
|
539
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
597
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
540
598
|
data_json = r.json()
|
|
541
599
|
temp_df = pd.DataFrame(data_json["content"])
|
|
542
600
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -558,8 +616,12 @@ def amac_fund_sub_info() -> pd.DataFrame:
|
|
|
558
616
|
"成立日期",
|
|
559
617
|
"备案日期",
|
|
560
618
|
]
|
|
561
|
-
manager_data_out["备案日期"] = pd.to_datetime(
|
|
562
|
-
|
|
619
|
+
manager_data_out["备案日期"] = pd.to_datetime(
|
|
620
|
+
manager_data_out["备案日期"], unit="ms"
|
|
621
|
+
).dt.date
|
|
622
|
+
manager_data_out["成立日期"] = pd.to_datetime(
|
|
623
|
+
manager_data_out["成立日期"], unit="ms"
|
|
624
|
+
).dt.date
|
|
563
625
|
return manager_data_out
|
|
564
626
|
|
|
565
627
|
|
|
@@ -567,23 +629,28 @@ def amac_fund_sub_info() -> pd.DataFrame:
|
|
|
567
629
|
def amac_fund_account_info() -> pd.DataFrame:
|
|
568
630
|
"""
|
|
569
631
|
中国证券投资基金业协会-信息公示-基金产品公示-基金公司及子公司集合资管产品公示
|
|
570
|
-
|
|
632
|
+
https://gs.amac.org.cn/amac-infodisc/res/fund/account/index.html
|
|
571
633
|
:return: 基金公司及子公司集合资管产品公示
|
|
572
634
|
:rtype: pandas.DataFrame
|
|
573
635
|
"""
|
|
636
|
+
import warnings
|
|
637
|
+
|
|
638
|
+
warnings.filterwarnings(action="ignore", category=FutureWarning)
|
|
639
|
+
|
|
574
640
|
url = "https://gs.amac.org.cn/amac-infodisc/api/fund/account"
|
|
575
641
|
params = {
|
|
576
642
|
"rand": "0.7665138514630696",
|
|
577
643
|
"page": "1",
|
|
578
644
|
"size": "100",
|
|
579
645
|
}
|
|
580
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
646
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
581
647
|
data_json = r.json()
|
|
582
648
|
total_page = data_json["totalPages"]
|
|
583
649
|
big_df = pd.DataFrame()
|
|
650
|
+
tqdm = get_tqdm()
|
|
584
651
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
585
652
|
params.update({"page": page})
|
|
586
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
653
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
587
654
|
data_json = r.json()
|
|
588
655
|
temp_df = pd.DataFrame(data_json["content"])
|
|
589
656
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -601,7 +668,9 @@ def amac_fund_account_info() -> pd.DataFrame:
|
|
|
601
668
|
"产品名称",
|
|
602
669
|
"管理人名称",
|
|
603
670
|
]
|
|
604
|
-
manager_data_out["成立日期"] = pd.to_datetime(
|
|
671
|
+
manager_data_out["成立日期"] = pd.to_datetime(
|
|
672
|
+
manager_data_out["成立日期"], unit="ms"
|
|
673
|
+
).dt.date
|
|
605
674
|
return manager_data_out
|
|
606
675
|
|
|
607
676
|
|
|
@@ -619,13 +688,14 @@ def amac_fund_abs() -> pd.DataFrame:
|
|
|
619
688
|
"page": "1",
|
|
620
689
|
"size": "100",
|
|
621
690
|
}
|
|
622
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
691
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
623
692
|
data_json = r.json()
|
|
624
693
|
total_page = data_json["totalPages"]
|
|
625
694
|
big_df = pd.DataFrame()
|
|
695
|
+
tqdm = get_tqdm()
|
|
626
696
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
627
697
|
params.update({"page": page})
|
|
628
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
698
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
629
699
|
data_json = r.json()
|
|
630
700
|
temp_df = pd.DataFrame(data_json["content"])
|
|
631
701
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -667,7 +737,7 @@ def amac_fund_abs() -> pd.DataFrame:
|
|
|
667
737
|
def amac_futures_info() -> pd.DataFrame:
|
|
668
738
|
"""
|
|
669
739
|
中国证券投资基金业协会-信息公示-基金产品公示-期货公司集合资管产品公示
|
|
670
|
-
|
|
740
|
+
https://gs.amac.org.cn/amac-infodisc/res/pof/futures/index.html
|
|
671
741
|
:return: 期货公司集合资管产品公示
|
|
672
742
|
:rtype: pandas.DataFrame
|
|
673
743
|
"""
|
|
@@ -677,13 +747,14 @@ def amac_futures_info() -> pd.DataFrame:
|
|
|
677
747
|
"page": "1",
|
|
678
748
|
"size": "100",
|
|
679
749
|
}
|
|
680
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
750
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
681
751
|
data_json = r.json()
|
|
682
752
|
total_page = data_json["totalPages"]
|
|
683
753
|
big_df = pd.DataFrame()
|
|
754
|
+
tqdm = get_tqdm()
|
|
684
755
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
685
756
|
params.update({"page": page})
|
|
686
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
757
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
687
758
|
data_json = r.json()
|
|
688
759
|
temp_df = pd.DataFrame(data_json["content"])
|
|
689
760
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -721,7 +792,7 @@ def amac_futures_info() -> pd.DataFrame:
|
|
|
721
792
|
def amac_manager_cancelled_info() -> pd.DataFrame:
|
|
722
793
|
"""
|
|
723
794
|
中国证券投资基金业协会-信息公示-诚信信息公示-已注销私募基金管理人名单
|
|
724
|
-
|
|
795
|
+
https://gs.amac.org.cn/amac-infodisc/res/cancelled/manager/index.html
|
|
725
796
|
主动注销: 100
|
|
726
797
|
依公告注销: 200
|
|
727
798
|
协会注销: 300
|
|
@@ -734,13 +805,14 @@ def amac_manager_cancelled_info() -> pd.DataFrame:
|
|
|
734
805
|
"page": "1",
|
|
735
806
|
"size": "100",
|
|
736
807
|
}
|
|
737
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
808
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
738
809
|
data_json = r.json()
|
|
739
810
|
total_page = data_json["totalPages"]
|
|
740
811
|
big_df = pd.DataFrame()
|
|
812
|
+
tqdm = get_tqdm()
|
|
741
813
|
for page in tqdm(range(0, int(total_page)), leave=False):
|
|
742
814
|
params.update({"page": page})
|
|
743
|
-
r = requests.post(url, params=params, json={}, verify=False)
|
|
815
|
+
r = requests.post(url, params=params, json={}, verify=False, headers=headers)
|
|
744
816
|
data_json = r.json()
|
|
745
817
|
temp_df = pd.DataFrame(data_json["content"])
|
|
746
818
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
@@ -760,6 +832,13 @@ def amac_manager_cancelled_info() -> pd.DataFrame:
|
|
|
760
832
|
"注销时间",
|
|
761
833
|
"注销类型",
|
|
762
834
|
]
|
|
835
|
+
manager_data_out["登记时间"] = pd.to_datetime(
|
|
836
|
+
manager_data_out["登记时间"], unit="ms"
|
|
837
|
+
).dt.date
|
|
838
|
+
manager_data_out["注销时间"] = pd.to_datetime(
|
|
839
|
+
manager_data_out["注销时间"], unit="ms"
|
|
840
|
+
).dt.date
|
|
841
|
+
manager_data_out.sort_values(["注销时间"], ignore_index=True, inplace=True)
|
|
763
842
|
return manager_data_out
|
|
764
843
|
|
|
765
844
|
|
|
@@ -771,7 +850,7 @@ if __name__ == "__main__":
|
|
|
771
850
|
|
|
772
851
|
# 中国证券投资基金业协会-信息公示-从业人员信息
|
|
773
852
|
# 中国证券投资基金业协会-信息公示-从业人员信息-基金从业人员资格注册信息
|
|
774
|
-
amac_person_fund_org_list_df = amac_person_fund_org_list()
|
|
853
|
+
amac_person_fund_org_list_df = amac_person_fund_org_list(symbol="公募基金管理公司")
|
|
775
854
|
print(amac_person_fund_org_list_df)
|
|
776
855
|
|
|
777
856
|
# 中国证券投资基金业协会-信息公示-从业人员信息
|
|
@@ -794,9 +873,12 @@ if __name__ == "__main__":
|
|
|
794
873
|
|
|
795
874
|
# 中国证券投资基金业协会-信息公示-基金产品
|
|
796
875
|
# 中国证券投资基金业协会-信息公示-基金产品-私募基金管理人基金产品
|
|
797
|
-
amac_fund_info_df = amac_fund_info(start_page="1", end_page=
|
|
876
|
+
amac_fund_info_df = amac_fund_info(start_page="1", end_page="100")
|
|
798
877
|
print(amac_fund_info_df)
|
|
799
|
-
|
|
878
|
+
|
|
879
|
+
example_df = amac_fund_info_df[
|
|
880
|
+
amac_fund_info_df["私募基金管理人名称"].str.contains("聚宽")
|
|
881
|
+
]
|
|
800
882
|
print(example_df)
|
|
801
883
|
|
|
802
884
|
# 中国证券投资基金业协会-信息公示-基金产品-证券公司集合资管产品公示
|