akshare 1.14.30__tar.gz → 1.14.32__tar.gz
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.
- {akshare-1.14.30 → akshare-1.14.32}/PKG-INFO +1 -1
- {akshare-1.14.30 → akshare-1.14.32}/akshare/__init__.py +8 -1
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_commodity.py +3 -3
- akshare-1.14.32/akshare/stock_feature/stock_concept_futu.py +175 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_esg_sina.py +4 -8
- {akshare-1.14.30 → akshare-1.14.32}/akshare.egg-info/PKG-INFO +1 -1
- {akshare-1.14.30 → akshare-1.14.32}/akshare.egg-info/SOURCES.txt +1 -0
- {akshare-1.14.30 → akshare-1.14.32}/LICENSE +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/README.md +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/air_hebei.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/air_zhenqi.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/crypto.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/outcrypto.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/air/sunrise_tad.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/epu_index.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/ff_factor.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/fred_md.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/article/risk_rv.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bank/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bank/bank_cbirc_2020.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bank/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_cb_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_cb_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_cbond.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_china.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_china_money.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_convert.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_futures.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_info_cm.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_investing.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_issue_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_nafmii.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_summary.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_zh_cov.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/bond_zh_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/bond/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/cost/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/cost/cost_living.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/crypto/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/crypto/crypto_bitcoin_cme.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/crypto/crypto_hist_investing.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/crypto/crypto_hold.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/currency/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/currency/currency.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/currency/currency_china_bank_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/currency/currency_safe.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/data/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/data/cninfo.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/data/crypto_info.zip +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/data/ths.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/datasets.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_australia.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_bank.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_canada.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_china.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_china_hk.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_china_nbs.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_constitute.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_euro.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_germany.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_info_ws.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_japan.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_other.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_swiss.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_uk.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/macro_usa.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/economic/marco_cnbs.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/energy/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/energy/energy_carbon.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/energy/energy_oil_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/event/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/event/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/event/migration.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/file_fold/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/file_fold/calendar.json +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_500.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_bloomberg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_forbes_500.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_hurun.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_it_juzi.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fortune/fortune_xincaifu_500.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_amac.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_announcement.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_aum_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_etf_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_etf_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_etf_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_fhsp_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_init_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_lof_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_manager.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_portfolio_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_position_lg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_rank_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_rating.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_report_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_scale_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_scale_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fund/fund_xq.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/cot.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_basis.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_comex_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_comm_ctp.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_comm_qihuo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_contract_detail.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_daily_bar.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_foreign.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_hf_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_hq_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_index_ccidx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_international.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_inventory_99.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_inventory_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_news_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_news_shmet.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_roll_yield.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_rule.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_settlement_price_sgx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_spot_stock_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_stock_js.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_to_spot.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_warehouse_receipt.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/futures_zh_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/inventory_data.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/receipt.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/requests_fun.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures/symbol_var.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_cffex.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_czce.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_dce.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_gfex.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_ine.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_contract_info_shfe.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_cot_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_hog.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_index_price_nh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_index_return_nh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_index_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_index_volatility_nh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_other_index_nh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/futures_derivative/futures_spot_sys.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fx/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fx/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fx/currency_investing.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fx/fx_quote.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/fx/fx_quote_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/hf/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/hf/hf_sp500.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_cflp.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_cni.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_cx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_drewry.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_eri.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_fear_greed_funddb.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_hog.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_investing.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_kq_fz.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_kq_ss.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_option_qvix.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_research_fund_sw.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_research_sw.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_spot.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_stock_hk.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_stock_us_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_stock_zh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_stock_zh_csindex.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_sugar.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_sw.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_yw.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_zh_a_scope.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/index/index_zh_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/interest_rate/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/interest_rate/interbank_rate_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/movie/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/movie/artist_yien.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/movie/jm.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/movie/movie_yien.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/movie/video_yien.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/news/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/news/news_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/news/news_cctv.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/news/news_stock.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/nlp/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/nlp/nlp_interface.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_comm_qihuo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_commodity_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_czce.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_daily_stats_sse_szse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_finance.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_finance_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_lhb_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_premium_analysis_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_risk_analysis_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_risk_indicator_sse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/option/option_value_analysis_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/other/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/other/other_car_cpca.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/other/other_car_gasgoo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/pro/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/pro/client.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/pro/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/pro/data_pro.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc/qhkc_api.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc_web/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc_web/qhkc_fund.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc_web/qhkc_index.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/qhkc_web/qhkc_tool.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/rate/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/rate/repo_rate.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/reits/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/reits/reits_basic.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/sport/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/sport/sport_olympic.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/sport/sport_olympic_winter.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/spot/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/spot/spot_price_qh.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/spot/spot_sge.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_allotment_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_ask_bid_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_board_concept_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_board_industry_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_cg_equity_mortgage.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_cg_guarantee.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_cg_lawsuit.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_dividend_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_dzjy_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_fund_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_fund_hold.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_gsrl_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hk_fhpx_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hk_hot_rank_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hk_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hold_control_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hold_control_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hold_num_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hot_rank_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hot_search_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_hot_up_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_industry.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_industry_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_industry_pe_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_industry_sw.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_info.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_info_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_intraday_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_intraday_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_ipo_summary_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_new_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_profile_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_rank_forecast.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_repurchase_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_share_changes_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_share_hold.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_stop.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_summary.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_us_famous.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_us_js.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_us_pink.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_us_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_weibo_nlp.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_xq.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_a_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_a_special.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_a_tick_tx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_ah_tx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_b_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_kcb_report.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock/stock_zh_kcb_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_a_below_net_asset_statistics.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_a_high_low.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_a_indicator.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_a_pe_and_pb.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_account_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_all_pb.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_analyst_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_board_industry_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_buffett_index_lg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_classify_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_comment_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_congestion_lg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_cyq_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_disclosure_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_dxsyl_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_ebs_lg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_fhps_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_fhps_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_fund_flow.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gddh_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gdfx_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gdhs.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gdzjc_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gpzy_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_gxl_lg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hist_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hist_tx.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hk_valuation_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hot_xq.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hsgt_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hsgt_exchange_rate.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_hsgt_min_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_info.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_inner_trade_xq.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_irm_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_jgdy_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_lh_yybpm.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_lhb_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_lhb_sina.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_margin_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_margin_sse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_margin_szse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_market_legu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_pankou_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_qsjy_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_report_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_research_report_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_sns_sseinfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_sy_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_technology_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_tfp_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_three_report_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_ttm_lyr.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_wencai.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_yjbb_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_yjyg_cninfo.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_yjyg_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_yzxdr_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_zdhtmx_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_zf_pg.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_zh_valuation_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_zh_vote_baidu.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/stock_ztb_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_feature/ths.js +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_finance.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_finance_hk.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_finance_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_hold.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_ipo_declare.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_kcb_detail_sse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_kcb_sse.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_mda_ym.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_notice.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_profit_forecast_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_profit_forecast_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_recommend.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_register_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_restricted_em.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_zygc.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/stock_fundamental/stock_zyjs_ths.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/tool/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/tool/trade_date_hist.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/cons.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/demjson.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/func.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/token_process.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare/utils/tqdm.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare.egg-info/dependency_links.txt +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare.egg-info/requires.txt +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/akshare.egg-info/top_level.txt +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/pyproject.toml +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/setup.cfg +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/setup.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/tests/__init__.py +0 -0
- {akshare-1.14.30 → akshare-1.14.32}/tests/test_func.py +0 -0
|
@@ -2841,9 +2841,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2841
2841
|
1.14.28 fix: fix news_trade_notify_dividend_baidu interface
|
|
2842
2842
|
1.14.29 fix: fix stock_individual_spot_xq interface
|
|
2843
2843
|
1.14.30 fix: fix stock_us_hist_min_em interface
|
|
2844
|
+
1.14.31 fix: fix option_shfe_daily interface
|
|
2845
|
+
1.14.32 add: add stock_concept_cons_futu interface
|
|
2844
2846
|
"""
|
|
2845
2847
|
|
|
2846
|
-
__version__ = "1.14.
|
|
2848
|
+
__version__ = "1.14.32"
|
|
2847
2849
|
__author__ = "AKFamily"
|
|
2848
2850
|
|
|
2849
2851
|
import sys
|
|
@@ -2865,6 +2867,11 @@ if sys.version_info < (3, 9):
|
|
|
2865
2867
|
|
|
2866
2868
|
del sys
|
|
2867
2869
|
|
|
2870
|
+
"""
|
|
2871
|
+
富途牛牛-主题投资-概念板块-成分股
|
|
2872
|
+
"""
|
|
2873
|
+
from akshare.stock_feature.stock_concept_futu import stock_concept_cons_futu
|
|
2874
|
+
|
|
2868
2875
|
"""
|
|
2869
2876
|
商品期权手续费
|
|
2870
2877
|
"""
|
|
@@ -17,7 +17,7 @@ Desc: 商品期权数据
|
|
|
17
17
|
import datetime
|
|
18
18
|
import warnings
|
|
19
19
|
from io import StringIO, BytesIO
|
|
20
|
-
from typing import Tuple, Any
|
|
20
|
+
from typing import Tuple, Any, Optional
|
|
21
21
|
|
|
22
22
|
import pandas as pd
|
|
23
23
|
import requests
|
|
@@ -34,7 +34,7 @@ from akshare.option.cons import (
|
|
|
34
34
|
|
|
35
35
|
def option_dce_daily(
|
|
36
36
|
symbol: str = "聚乙烯期权", trade_date: str = "20210728"
|
|
37
|
-
) -> Tuple[Any, Any]:
|
|
37
|
+
) -> Optional[Tuple[Any, Any]]:
|
|
38
38
|
"""
|
|
39
39
|
大连商品交易所-期权-日频行情数据
|
|
40
40
|
http://www.dce.com.cn/
|
|
@@ -225,7 +225,7 @@ def option_czce_daily(
|
|
|
225
225
|
|
|
226
226
|
def option_shfe_daily(
|
|
227
227
|
symbol: str = "铝期权", trade_date: str = "20200827"
|
|
228
|
-
) -> pd.DataFrame:
|
|
228
|
+
) -> Optional[pd.DataFrame]:
|
|
229
229
|
"""
|
|
230
230
|
上海期货交易所-期权-日频行情数据
|
|
231
231
|
https://tsite.shfe.com.cn/statements/dataview.html?paramid=kxQ
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
import requests
|
|
5
|
+
from bs4 import BeautifulSoup
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _stock_concept_cons_futu(symbol: str = "巴菲特持仓") -> pd.DataFrame:
|
|
9
|
+
"""
|
|
10
|
+
富途牛牛-主题投资-概念板块-成分股
|
|
11
|
+
https://www.futunn.com/quote/sparks-us?global_content=%7B%22promote_id%22%3A13766,%22sub_promote_id%22%3A24%7D
|
|
12
|
+
:param symbol: 板块名称; choice of {"巴菲特持仓", "佩洛西持仓"}
|
|
13
|
+
:type symbol: str
|
|
14
|
+
:return: 概念板块
|
|
15
|
+
:rtype: pandas.DataFrame
|
|
16
|
+
"""
|
|
17
|
+
symbol_map = {
|
|
18
|
+
"巴菲特持仓": "BK2999",
|
|
19
|
+
"佩洛西持仓": "BK20883",
|
|
20
|
+
}
|
|
21
|
+
url = f"https://www.futunn.com/stock/{symbol_map[symbol]}"
|
|
22
|
+
# 定义查询参数
|
|
23
|
+
params = {"global_content": json.dumps({"promote_id": 13766, "sub_promote_id": 24})}
|
|
24
|
+
headers = {
|
|
25
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
|
|
26
|
+
"(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
|
27
|
+
}
|
|
28
|
+
r = requests.get(url, params=params, headers=headers)
|
|
29
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
30
|
+
temp_code_name = [
|
|
31
|
+
item.find_all("div", attrs={"class": "fix-left"})
|
|
32
|
+
for item in soup.find(name="div", attrs={"class": "content-main"}).find_all("a")
|
|
33
|
+
]
|
|
34
|
+
temp_value_list = [
|
|
35
|
+
item.find_all("div", attrs={"class": "middle"})
|
|
36
|
+
for item in soup.find(name="div", attrs={"class": "content-main"}).find_all("a")
|
|
37
|
+
]
|
|
38
|
+
code_name_list = [item[0].find_all("span") for item in temp_code_name]
|
|
39
|
+
|
|
40
|
+
quant_list = [item[0].find_all("span") for item in temp_value_list]
|
|
41
|
+
temp_df = pd.DataFrame(
|
|
42
|
+
[
|
|
43
|
+
[item[0]["title"] for item in code_name_list],
|
|
44
|
+
[item[1]["title"] for item in code_name_list],
|
|
45
|
+
[item[0]["title"] for item in quant_list],
|
|
46
|
+
[item[1]["title"] for item in quant_list],
|
|
47
|
+
[item[2]["title"] for item in quant_list],
|
|
48
|
+
[item[3]["title"] for item in quant_list],
|
|
49
|
+
[item[4]["title"] for item in quant_list],
|
|
50
|
+
[item[5]["title"] for item in quant_list],
|
|
51
|
+
[item[6]["title"] for item in quant_list],
|
|
52
|
+
[item[7]["title"] for item in quant_list],
|
|
53
|
+
[item[8]["title"] for item in quant_list],
|
|
54
|
+
[item[9]["title"] for item in quant_list],
|
|
55
|
+
[item[10]["title"] for item in quant_list],
|
|
56
|
+
[item[11]["title"] for item in quant_list],
|
|
57
|
+
[item[12]["title"] for item in quant_list],
|
|
58
|
+
[item[13]["title"] for item in quant_list],
|
|
59
|
+
[item[14]["title"] for item in quant_list],
|
|
60
|
+
]
|
|
61
|
+
).T
|
|
62
|
+
temp_df.columns = [
|
|
63
|
+
"代码",
|
|
64
|
+
"股票名称",
|
|
65
|
+
"最新价",
|
|
66
|
+
"涨跌额",
|
|
67
|
+
"涨跌幅",
|
|
68
|
+
"成交量",
|
|
69
|
+
"成交额",
|
|
70
|
+
"-",
|
|
71
|
+
"-",
|
|
72
|
+
"-",
|
|
73
|
+
"-",
|
|
74
|
+
"-",
|
|
75
|
+
"-",
|
|
76
|
+
"-",
|
|
77
|
+
"-",
|
|
78
|
+
"-",
|
|
79
|
+
"-",
|
|
80
|
+
]
|
|
81
|
+
temp_df = temp_df[
|
|
82
|
+
[
|
|
83
|
+
"代码",
|
|
84
|
+
"股票名称",
|
|
85
|
+
"最新价",
|
|
86
|
+
"涨跌额",
|
|
87
|
+
"涨跌幅",
|
|
88
|
+
"成交量",
|
|
89
|
+
"成交额",
|
|
90
|
+
]
|
|
91
|
+
]
|
|
92
|
+
return temp_df
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def stock_concept_cons_futu(symbol: str = "特朗普概念股") -> pd.DataFrame:
|
|
96
|
+
"""
|
|
97
|
+
富途牛牛-主题投资-概念板块-成分股
|
|
98
|
+
https://www.futunn.com/quote/sparks-us
|
|
99
|
+
:param symbol: 板块名称; choice of {"巴菲特持仓", "佩洛西持仓", "特朗普概念股"}
|
|
100
|
+
:type symbol: str
|
|
101
|
+
:return: 概念板块
|
|
102
|
+
:rtype: pandas.DataFrame
|
|
103
|
+
"""
|
|
104
|
+
if symbol == "特朗普概念股":
|
|
105
|
+
url = "https://www.futunn.com/quote-api/quote-v2/get-plate-stock"
|
|
106
|
+
params = {
|
|
107
|
+
"marketType": "2",
|
|
108
|
+
"plateId": "10102960",
|
|
109
|
+
"page": "0",
|
|
110
|
+
"pageSize": "30",
|
|
111
|
+
}
|
|
112
|
+
headers = {
|
|
113
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
|
|
114
|
+
"(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
|
115
|
+
"Quote-Token": "7f74cd2a5e",
|
|
116
|
+
}
|
|
117
|
+
r = requests.get(url, params=params, headers=headers)
|
|
118
|
+
data_json = r.json()
|
|
119
|
+
total_page = data_json["data"]["pagination"]["pageCount"]
|
|
120
|
+
big_df = pd.DataFrame()
|
|
121
|
+
for page in range(0, total_page):
|
|
122
|
+
params.update(
|
|
123
|
+
{
|
|
124
|
+
"page": page,
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
if page == 1:
|
|
128
|
+
headers.update({"Quote-Token": "a3043d6fed"})
|
|
129
|
+
r = requests.get(url, params=params, headers=headers)
|
|
130
|
+
data_json = r.json()
|
|
131
|
+
temp_df = pd.DataFrame(data_json["data"]["list"])
|
|
132
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
133
|
+
|
|
134
|
+
big_df.rename(
|
|
135
|
+
columns={
|
|
136
|
+
"stockCode": "代码",
|
|
137
|
+
"name": "股票名称",
|
|
138
|
+
"price": "最新价",
|
|
139
|
+
"change": "涨跌额",
|
|
140
|
+
"changeRatio": "涨跌幅",
|
|
141
|
+
"tradeVolumn": "成交量",
|
|
142
|
+
"tradeTrunover": "成交额",
|
|
143
|
+
},
|
|
144
|
+
inplace=True,
|
|
145
|
+
)
|
|
146
|
+
big_df = big_df[
|
|
147
|
+
[
|
|
148
|
+
"代码",
|
|
149
|
+
"股票名称",
|
|
150
|
+
"最新价",
|
|
151
|
+
"涨跌额",
|
|
152
|
+
"涨跌幅",
|
|
153
|
+
"成交量",
|
|
154
|
+
"成交额",
|
|
155
|
+
]
|
|
156
|
+
]
|
|
157
|
+
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
158
|
+
big_df["涨跌额"] = pd.to_numeric(big_df["涨跌额"], errors="coerce")
|
|
159
|
+
return big_df
|
|
160
|
+
else:
|
|
161
|
+
temp_df = _stock_concept_cons_futu(symbol)
|
|
162
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
163
|
+
temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
|
|
164
|
+
return temp_df
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
if __name__ == "__main__":
|
|
168
|
+
stock_concept_cons_futu_df = stock_concept_cons_futu(symbol="特朗普概念股")
|
|
169
|
+
print(stock_concept_cons_futu_df)
|
|
170
|
+
|
|
171
|
+
stock_concept_cons_futu_df = stock_concept_cons_futu(symbol="巴菲特持仓")
|
|
172
|
+
print(stock_concept_cons_futu_df)
|
|
173
|
+
|
|
174
|
+
stock_concept_cons_futu_df = stock_concept_cons_futu(symbol="佩洛西持仓")
|
|
175
|
+
print(stock_concept_cons_futu_df)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/7/15 16:30
|
|
5
5
|
Desc: 新浪财经-ESG评级中心
|
|
6
6
|
https://finance.sina.com.cn/esg/
|
|
7
7
|
"""
|
|
@@ -64,8 +64,8 @@ def stock_esg_msci_sina() -> pd.DataFrame:
|
|
|
64
64
|
"factset_sector_name": "-",
|
|
65
65
|
"factset_industry_code": "-",
|
|
66
66
|
"factset_industry_name": "-",
|
|
67
|
-
"date": "
|
|
68
|
-
"
|
|
67
|
+
"date": "-",
|
|
68
|
+
"quarter_date": "评级日期",
|
|
69
69
|
"grade": "ESG等级",
|
|
70
70
|
"score": "-",
|
|
71
71
|
"env_score": "环境总评",
|
|
@@ -83,17 +83,13 @@ def stock_esg_msci_sina() -> pd.DataFrame:
|
|
|
83
83
|
)
|
|
84
84
|
big_df = big_df[
|
|
85
85
|
[
|
|
86
|
-
"股票名称",
|
|
87
86
|
"股票代码",
|
|
88
87
|
"ESG评分",
|
|
89
88
|
"环境总评",
|
|
90
89
|
"社会责任总评",
|
|
91
90
|
"治理总评",
|
|
92
91
|
"评级日期",
|
|
93
|
-
"评级机构",
|
|
94
92
|
"交易市场",
|
|
95
|
-
"行业名称",
|
|
96
|
-
"评级季度",
|
|
97
93
|
]
|
|
98
94
|
]
|
|
99
95
|
big_df["评级日期"] = pd.to_datetime(big_df["评级日期"], errors="coerce").dt.date
|
|
@@ -177,7 +173,7 @@ def stock_esg_rate_sina() -> pd.DataFrame:
|
|
|
177
173
|
url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getEsgStocks?page=1&num=200"
|
|
178
174
|
r = requests.get(url)
|
|
179
175
|
data_json = r.json()
|
|
180
|
-
page_num = math.ceil(data_json["result"]["data"]["info"]["total"] / 200)
|
|
176
|
+
page_num = math.ceil(int(data_json["result"]["data"]["info"]["total"]) / 200)
|
|
181
177
|
big_df = pd.DataFrame()
|
|
182
178
|
for page in tqdm(range(1, page_num + 1), leave=False):
|
|
183
179
|
url = f"https://global.finance.sina.com.cn/api/openapi.php/EsgService.getEsgStocks?page={page}&num=200"
|
|
@@ -305,6 +305,7 @@ akshare/stock_feature/stock_board_industry_ths.py
|
|
|
305
305
|
akshare/stock_feature/stock_buffett_index_lg.py
|
|
306
306
|
akshare/stock_feature/stock_classify_sina.py
|
|
307
307
|
akshare/stock_feature/stock_comment_em.py
|
|
308
|
+
akshare/stock_feature/stock_concept_futu.py
|
|
308
309
|
akshare/stock_feature/stock_congestion_lg.py
|
|
309
310
|
akshare/stock_feature/stock_cyq_em.py
|
|
310
311
|
akshare/stock_feature/stock_disclosure_cninfo.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|