akshare 1.12.99__py3-none-any.whl → 1.15.72__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 +441 -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.72.dist-info}/METADATA +52 -69
- akshare-1.15.72.dist-info/RECORD +385 -0
- {akshare-1.12.99.dist-info → akshare-1.15.72.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.72.dist-info}/LICENSE +0 -0
- {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/7/24 23:30
|
|
5
5
|
Desc: 巨潮资讯-数据中心-专题统计-基金报表
|
|
6
|
-
|
|
6
|
+
https://webapi.cninfo.com.cn/#/thematicStatistics
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
10
|
+
import py_mini_racer
|
|
9
11
|
import requests
|
|
10
|
-
from py_mini_racer import py_mini_racer
|
|
11
12
|
|
|
12
13
|
from akshare.datasets import get_ths_js
|
|
13
14
|
|
|
@@ -21,7 +22,7 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
|
|
|
21
22
|
:rtype: str
|
|
22
23
|
"""
|
|
23
24
|
setting_file_path = get_ths_js(file)
|
|
24
|
-
with open(setting_file_path) as f:
|
|
25
|
+
with open(setting_file_path, encoding="utf-8") as f:
|
|
25
26
|
file_data = f.read()
|
|
26
27
|
return file_data
|
|
27
28
|
|
|
@@ -29,13 +30,13 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
|
|
|
29
30
|
def fund_report_stock_cninfo(date: str = "20210630") -> pd.DataFrame:
|
|
30
31
|
"""
|
|
31
32
|
巨潮资讯-数据中心-专题统计-基金报表-基金重仓股
|
|
32
|
-
|
|
33
|
+
https://webapi.cninfo.com.cn/#/thematicStatistics
|
|
33
34
|
:param date: 报告时间; choice of {"XXXX0331", "XXXX0630", "XXXX0930", "XXXX1231"}
|
|
34
35
|
:type date: str
|
|
35
36
|
:return: 基金重仓股
|
|
36
37
|
:rtype: pandas.DataFrame
|
|
37
38
|
"""
|
|
38
|
-
url = "
|
|
39
|
+
url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1112"
|
|
39
40
|
js_code = py_mini_racer.MiniRacer()
|
|
40
41
|
js_content = _get_file_content_cninfo("cninfo.js")
|
|
41
42
|
js_code.eval(js_content)
|
|
@@ -48,11 +49,12 @@ def fund_report_stock_cninfo(date: str = "20210630") -> pd.DataFrame:
|
|
|
48
49
|
"Cache-Control": "no-cache",
|
|
49
50
|
"Content-Length": "0",
|
|
50
51
|
"Host": "webapi.cninfo.com.cn",
|
|
51
|
-
"Origin": "
|
|
52
|
+
"Origin": "https://webapi.cninfo.com.cn",
|
|
52
53
|
"Pragma": "no-cache",
|
|
53
54
|
"Proxy-Connection": "keep-alive",
|
|
54
|
-
"Referer": "
|
|
55
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
55
|
+
"Referer": "https://webapi.cninfo.com.cn/",
|
|
56
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
57
|
+
"Chrome/93.0.4577.63 Safari/537.36",
|
|
56
58
|
"X-Requested-With": "XMLHttpRequest",
|
|
57
59
|
}
|
|
58
60
|
params = {
|
|
@@ -88,19 +90,20 @@ def fund_report_stock_cninfo(date: str = "20210630") -> pd.DataFrame:
|
|
|
88
90
|
temp_df["持股总数"] = pd.to_numeric(temp_df["持股总数"], errors="coerce")
|
|
89
91
|
temp_df["持股总市值"] = pd.to_numeric(temp_df["持股总市值"], errors="coerce")
|
|
90
92
|
temp_df["基金覆盖家数"] = pd.to_numeric(temp_df["基金覆盖家数"], errors="coerce")
|
|
93
|
+
temp_df["序号"] = range(1, len(temp_df) + 1)
|
|
91
94
|
return temp_df
|
|
92
95
|
|
|
93
96
|
|
|
94
97
|
def fund_report_industry_allocation_cninfo(date: str = "20210630") -> pd.DataFrame:
|
|
95
98
|
"""
|
|
96
99
|
巨潮资讯-数据中心-专题统计-基金报表-基金行业配置
|
|
97
|
-
|
|
100
|
+
https://webapi.cninfo.com.cn/#/thematicStatistics
|
|
98
101
|
:param date: 报告时间; choice of {"XXXX0331", "XXXX0630", "XXXX0930", "XXXX1231"}, 从 2017 年开始
|
|
99
102
|
:type date: str
|
|
100
103
|
:return: 基金行业配置
|
|
101
104
|
:rtype: pandas.DataFrame
|
|
102
105
|
"""
|
|
103
|
-
url = "
|
|
106
|
+
url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1113"
|
|
104
107
|
js_code = py_mini_racer.MiniRacer()
|
|
105
108
|
js_content = _get_file_content_cninfo("cninfo.js")
|
|
106
109
|
js_code.eval(js_content)
|
|
@@ -113,11 +116,12 @@ def fund_report_industry_allocation_cninfo(date: str = "20210630") -> pd.DataFra
|
|
|
113
116
|
"Cache-Control": "no-cache",
|
|
114
117
|
"Content-Length": "0",
|
|
115
118
|
"Host": "webapi.cninfo.com.cn",
|
|
116
|
-
"Origin": "
|
|
119
|
+
"Origin": "https://webapi.cninfo.com.cn",
|
|
117
120
|
"Pragma": "no-cache",
|
|
118
121
|
"Proxy-Connection": "keep-alive",
|
|
119
|
-
"Referer": "
|
|
120
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
122
|
+
"Referer": "https://webapi.cninfo.com.cn/",
|
|
123
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
124
|
+
"Chrome/93.0.4577.63 Safari/537.36",
|
|
121
125
|
"X-Requested-With": "XMLHttpRequest",
|
|
122
126
|
}
|
|
123
127
|
params = {
|
|
@@ -128,23 +132,23 @@ def fund_report_industry_allocation_cninfo(date: str = "20210630") -> pd.DataFra
|
|
|
128
132
|
temp_df = pd.DataFrame(data_json["records"])
|
|
129
133
|
temp_df.rename(
|
|
130
134
|
columns={
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
"F004N": "行业规模",
|
|
136
|
+
"F003N": "基金覆盖家数",
|
|
137
|
+
"F002V": "证监会行业名称",
|
|
138
|
+
"F001V": "行业编码",
|
|
139
|
+
"ENDDATE": "报告期",
|
|
140
|
+
"F005N": "占净资产比例",
|
|
137
141
|
},
|
|
138
142
|
inplace=True,
|
|
139
143
|
)
|
|
140
144
|
temp_df = temp_df[
|
|
141
145
|
[
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
"行业编码",
|
|
147
|
+
"证监会行业名称",
|
|
148
|
+
"报告期",
|
|
149
|
+
"基金覆盖家数",
|
|
150
|
+
"行业规模",
|
|
151
|
+
"占净资产比例",
|
|
148
152
|
]
|
|
149
153
|
]
|
|
150
154
|
temp_df["报告期"] = pd.to_datetime(temp_df["报告期"], errors="coerce").dt.date
|
|
@@ -157,11 +161,11 @@ def fund_report_industry_allocation_cninfo(date: str = "20210630") -> pd.DataFra
|
|
|
157
161
|
def fund_report_asset_allocation_cninfo() -> pd.DataFrame:
|
|
158
162
|
"""
|
|
159
163
|
巨潮资讯-数据中心-专题统计-基金报表-基金资产配置
|
|
160
|
-
|
|
164
|
+
https://webapi.cninfo.com.cn/#/thematicStatistics
|
|
161
165
|
:return: 基金资产配置
|
|
162
166
|
:rtype: pandas.DataFrame
|
|
163
167
|
"""
|
|
164
|
-
url = "
|
|
168
|
+
url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1114"
|
|
165
169
|
js_code = py_mini_racer.MiniRacer()
|
|
166
170
|
js_content = _get_file_content_cninfo("cninfo.js")
|
|
167
171
|
js_code.eval(js_content)
|
|
@@ -174,11 +178,12 @@ def fund_report_asset_allocation_cninfo() -> pd.DataFrame:
|
|
|
174
178
|
"Cache-Control": "no-cache",
|
|
175
179
|
"Content-Length": "0",
|
|
176
180
|
"Host": "webapi.cninfo.com.cn",
|
|
177
|
-
"Origin": "
|
|
181
|
+
"Origin": "https://webapi.cninfo.com.cn",
|
|
178
182
|
"Pragma": "no-cache",
|
|
179
183
|
"Proxy-Connection": "keep-alive",
|
|
180
|
-
"Referer": "
|
|
181
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
184
|
+
"Referer": "https://webapi.cninfo.com.cn/",
|
|
185
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
186
|
+
"Chrome/93.0.4577.63 Safari/537.36",
|
|
182
187
|
"X-Requested-With": "XMLHttpRequest",
|
|
183
188
|
}
|
|
184
189
|
r = requests.post(url, headers=headers)
|
|
@@ -186,31 +191,39 @@ def fund_report_asset_allocation_cninfo() -> pd.DataFrame:
|
|
|
186
191
|
temp_df = pd.DataFrame(data_json["records"])
|
|
187
192
|
temp_df.rename(
|
|
188
193
|
columns={
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
"F001N": "基金覆盖家数",
|
|
195
|
+
"F008N": "现金货币类占净资产比例",
|
|
196
|
+
"F007N": "债券固定收益类占净资产比例",
|
|
197
|
+
"F006N": "股票权益类占净资产比例",
|
|
198
|
+
"ENDDATE": "报告期",
|
|
199
|
+
"F005N": "基金市场净资产规模",
|
|
195
200
|
},
|
|
196
201
|
inplace=True,
|
|
197
202
|
)
|
|
198
203
|
temp_df = temp_df[
|
|
199
204
|
[
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
205
|
+
"报告期",
|
|
206
|
+
"基金覆盖家数",
|
|
207
|
+
"股票权益类占净资产比例",
|
|
208
|
+
"债券固定收益类占净资产比例",
|
|
209
|
+
"现金货币类占净资产比例",
|
|
210
|
+
"基金市场净资产规模",
|
|
206
211
|
]
|
|
207
212
|
]
|
|
208
213
|
temp_df["报告期"] = pd.to_datetime(temp_df["报告期"], errors="coerce").dt.date
|
|
209
214
|
temp_df["基金覆盖家数"] = pd.to_numeric(temp_df["基金覆盖家数"], errors="coerce")
|
|
210
|
-
temp_df["股票权益类占净资产比例"] = pd.to_numeric(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
temp_df["
|
|
215
|
+
temp_df["股票权益类占净资产比例"] = pd.to_numeric(
|
|
216
|
+
temp_df["股票权益类占净资产比例"], errors="coerce"
|
|
217
|
+
)
|
|
218
|
+
temp_df["债券固定收益类占净资产比例"] = pd.to_numeric(
|
|
219
|
+
temp_df["债券固定收益类占净资产比例"], errors="coerce"
|
|
220
|
+
)
|
|
221
|
+
temp_df["现金货币类占净资产比例"] = pd.to_numeric(
|
|
222
|
+
temp_df["现金货币类占净资产比例"], errors="coerce"
|
|
223
|
+
)
|
|
224
|
+
temp_df["基金市场净资产规模"] = pd.to_numeric(
|
|
225
|
+
temp_df["基金市场净资产规模"], errors="coerce"
|
|
226
|
+
)
|
|
214
227
|
return temp_df
|
|
215
228
|
|
|
216
229
|
|
|
@@ -218,7 +231,9 @@ if __name__ == "__main__":
|
|
|
218
231
|
fund_report_stock_cninfo_df = fund_report_stock_cninfo(date="20210630")
|
|
219
232
|
print(fund_report_stock_cninfo_df)
|
|
220
233
|
|
|
221
|
-
fund_report_industry_allocation_cninfo_df = fund_report_industry_allocation_cninfo(
|
|
234
|
+
fund_report_industry_allocation_cninfo_df = fund_report_industry_allocation_cninfo(
|
|
235
|
+
date="20210930"
|
|
236
|
+
)
|
|
222
237
|
print(fund_report_industry_allocation_cninfo_df)
|
|
223
238
|
|
|
224
239
|
fund_report_asset_allocation_cninfo_df = fund_report_asset_allocation_cninfo()
|
akshare/fund/fund_scale_sina.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/9/1 16:20
|
|
5
5
|
Desc: 新浪财经-基金规模
|
|
6
6
|
https://vip.stock.finance.sina.com.cn/fund_center/index.html#jjgmall
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -27,7 +28,10 @@ def fund_scale_open_sina(symbol: str = "股票型基金") -> pd.DataFrame:
|
|
|
27
28
|
"货币型基金": "5",
|
|
28
29
|
"QDII基金": "6",
|
|
29
30
|
}
|
|
30
|
-
url =
|
|
31
|
+
url = (
|
|
32
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
33
|
+
"CallbackList['J2cW8KXheoWKdSHc']/NetValueReturn_Service.NetValueReturnOpen"
|
|
34
|
+
)
|
|
31
35
|
params = {
|
|
32
36
|
"page": "1",
|
|
33
37
|
"num": "10000",
|
|
@@ -39,7 +43,7 @@ def fund_scale_open_sina(symbol: str = "股票型基金") -> pd.DataFrame:
|
|
|
39
43
|
}
|
|
40
44
|
r = requests.get(url, params=params)
|
|
41
45
|
data_text = r.text
|
|
42
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
46
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
43
47
|
temp_df = pd.DataFrame(data_json["data"])
|
|
44
48
|
temp_df.reset_index(inplace=True)
|
|
45
49
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -95,19 +99,22 @@ def fund_scale_close_sina() -> pd.DataFrame:
|
|
|
95
99
|
:return: 基金规模
|
|
96
100
|
:rtype: pandas.DataFrame
|
|
97
101
|
"""
|
|
98
|
-
url =
|
|
102
|
+
url = (
|
|
103
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
104
|
+
"CallbackList['_bjN6KvXOkfPy2Bu']/NetValueReturn_Service.NetValueReturnClose"
|
|
105
|
+
)
|
|
99
106
|
params = {
|
|
100
107
|
"page": "1",
|
|
101
108
|
"num": "1000",
|
|
102
109
|
"sort": "zmjgm",
|
|
103
110
|
"asc": "0",
|
|
104
111
|
"ccode": "",
|
|
105
|
-
"type2":
|
|
112
|
+
"type2": "",
|
|
106
113
|
"type3": "",
|
|
107
114
|
}
|
|
108
115
|
r = requests.get(url, params=params)
|
|
109
116
|
data_text = r.text
|
|
110
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
117
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
111
118
|
temp_df = pd.DataFrame(data_json["data"])
|
|
112
119
|
temp_df.reset_index(inplace=True)
|
|
113
120
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -163,19 +170,22 @@ def fund_scale_structured_sina() -> pd.DataFrame:
|
|
|
163
170
|
:return: 基金规模
|
|
164
171
|
:rtype: pandas.DataFrame
|
|
165
172
|
"""
|
|
166
|
-
url =
|
|
173
|
+
url = (
|
|
174
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
175
|
+
"CallbackList['cRrwseM7NWX68rDa']/NetValueReturn_Service.NetValueReturnCX"
|
|
176
|
+
)
|
|
167
177
|
params = {
|
|
168
178
|
"page": "1",
|
|
169
179
|
"num": "1000",
|
|
170
180
|
"sort": "zmjgm",
|
|
171
181
|
"asc": "0",
|
|
172
182
|
"ccode": "",
|
|
173
|
-
"type2":
|
|
183
|
+
"type2": "",
|
|
174
184
|
"type3": "",
|
|
175
185
|
}
|
|
176
186
|
r = requests.get(url, params=params)
|
|
177
187
|
data_text = r.text
|
|
178
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
188
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
179
189
|
temp_df = pd.DataFrame(data_json["data"])
|
|
180
190
|
temp_df.reset_index(inplace=True)
|
|
181
191
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -234,5 +244,5 @@ if __name__ == "__main__":
|
|
|
234
244
|
fund_scale_structured_sina_df = fund_scale_structured_sina()
|
|
235
245
|
print(fund_scale_structured_sina_df)
|
|
236
246
|
|
|
237
|
-
fund_scale_open_sina_df = fund_scale_open_sina(symbol=
|
|
247
|
+
fund_scale_open_sina_df = fund_scale_open_sina(symbol="股票型基金")
|
|
238
248
|
print(fund_scale_open_sina_df)
|