mns-common 1.3.5.3__tar.gz → 1.3.5.5__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.
Potentially problematic release.
This version of mns-common might be problematic. Click here for more details.
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/PKG-INFO +1 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_debt_api.py +2 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_etf_api.py +2 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_api.py +2 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_hk_api.py +2 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_us_api.py +4 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_v2_api.py +6 -1
- mns_common-1.3.5.5/mns_common/api/xueqiu/xue_qiu_k_line_api.py +88 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/db_name_constant.py +2 -0
- mns_common-1.3.5.5/mns_common/db/v2/__init__.py +7 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common.egg-info/SOURCES.txt +2 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/setup.py +1 -1
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/README.md +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/k_line_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/stock_dt_pool.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/stock_zb_pool.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/stock_zt_pool_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_gdfx_free_top_10_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/em_concept_index_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/hk/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/k_line/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/constant/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/selection/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/msg/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/qmt/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/big_deal/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/company/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/app/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/self_choose/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/wen_cai/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/us/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/us/ths_us_company_info_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/classify → mns_common-1.3.5.5/mns_common/api/xueqiu}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/cache/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/cookie → mns_common-1.3.5.5/mns_common/component/classify}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/company/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/concept/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/deal → mns_common-1.3.5.5/mns_common/component/cookie}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/cookie/cookie_info_service.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/data/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/hk → mns_common-1.3.5.5/mns_common/component/deal}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/price → mns_common-1.3.5.5/mns_common/component/hk}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/hk/company_hk_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/industry/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/clean/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/common/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/patterns/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/qmt → mns_common-1.3.5.5/mns_common/component/price}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/redis_msg → mns_common-1.3.5.5/mns_common/component/qmt}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/real_time/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/self_choose → mns_common-1.3.5.5/mns_common/component/redis_msg}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.3.5.3/mns_common/component/tfp → mns_common-1.3.5.5/mns_common/component/self_choose}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.3.5.3/mns_common/db/v2 → mns_common-1.3.5.5/mns_common/component/tfp}/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/tfp/stock_tfp_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/trade_date/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/zt/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/east_money_stock_api.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/extra_income_db_name.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/db/MongodbUtil.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/db/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/db/v2/MongodbUtilV2.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.3.5.3 → mns_common-1.3.5.5}/setup.cfg +0 -0
|
@@ -65,7 +65,8 @@ def get_debt_page_data(fields, pn) -> pd.DataFrame:
|
|
|
65
65
|
begin_index_total = data_text.index('"total":')
|
|
66
66
|
|
|
67
67
|
end_index_total = data_text.index('"diff"')
|
|
68
|
-
max_number
|
|
68
|
+
global max_number
|
|
69
|
+
max_number = int(data_text[begin_index_total + 8:end_index_total - 1])
|
|
69
70
|
except Exception as e:
|
|
70
71
|
logger.error(f"获取第{pn}页可转债列表异常: {e}")
|
|
71
72
|
return pd.DataFrame()
|
|
@@ -56,7 +56,8 @@ def get_fund_etf_page_df(pn) -> pd.DataFrame:
|
|
|
56
56
|
data_json = r.json()
|
|
57
57
|
if pn == 1:
|
|
58
58
|
try:
|
|
59
|
-
max_number
|
|
59
|
+
global max_number
|
|
60
|
+
max_number = int(data_json['data']['total'])
|
|
60
61
|
except Exception as e:
|
|
61
62
|
logger.error(f"获取第{pn}页ETF列表异常: {e}")
|
|
62
63
|
return pd.DataFrame()
|
|
@@ -55,7 +55,8 @@ def get_stock_page_data(pn, fields, fs):
|
|
|
55
55
|
begin_index_total = data_text.index('"total":')
|
|
56
56
|
|
|
57
57
|
end_index_total = data_text.index('"diff"')
|
|
58
|
-
max_number
|
|
58
|
+
global max_number
|
|
59
|
+
max_number = int(data_text[begin_index_total + 8:end_index_total - 1])
|
|
59
60
|
except Exception as e:
|
|
60
61
|
logger.error(f"获取第{pn}页股票列表异常: {e}")
|
|
61
62
|
return pd.DataFrame()
|
|
@@ -54,7 +54,8 @@ def hk_real_time_quotes_page_df(cookie, pn):
|
|
|
54
54
|
begin_index_total = result.index('"total":')
|
|
55
55
|
|
|
56
56
|
end_index_total = result.index('"diff"')
|
|
57
|
-
max_number
|
|
57
|
+
global max_number
|
|
58
|
+
max_number = int(result[begin_index_total + 8:end_index_total - 1])
|
|
58
59
|
except Exception as e:
|
|
59
60
|
logger.error(f"获取第{pn}页港股列表异常: {e}")
|
|
60
61
|
return pd.DataFrame()
|
|
@@ -48,7 +48,8 @@ def us_real_time_quotes_page_df(cookie, pn):
|
|
|
48
48
|
data_json = r.json()
|
|
49
49
|
if pn == 1:
|
|
50
50
|
try:
|
|
51
|
-
max_number
|
|
51
|
+
global max_number
|
|
52
|
+
max_number = int(data_json['data']['total'])
|
|
52
53
|
except Exception as e:
|
|
53
54
|
logger.error(f"获取第{pn}页美股列表异常: {e}")
|
|
54
55
|
return pd.DataFrame()
|
|
@@ -219,6 +220,8 @@ if __name__ == '__main__':
|
|
|
219
220
|
cookie_test = 'qgqp_b_id=1e0d79428176ed54bef8434efdc0e8c3; mtp=1; ct=QVRY_s8Tiag1WfK2tSW2n03qpsX-PD8aH_rIjKVooawX8K33UVnpIofK088lD1lguWlE_OEIpQwn3PJWFPhHvSvyvYr4Zka3l4vxtZfH1Uikjtyy9z1H4Swo0rQzMKXncVzBXiOo5TjE-Dy9fcoG3ZF7UVdQ35jp_cFwzOlpK5Y; ut=FobyicMgeV51lVMr4ZJXvn-72bp0oeSOvtzifFY_U7kBFtR6og4Usd-VtBM5XBBvHq0lvd9xXkvpIqWro9EDKmv6cbKOQGyawUSMcKVP57isZCaM7lWQ6jWXajvTfvV4mIR-W_MZNK8VY0lL9W4qNMniJ6PBn_gkJsSAJCadmsyI9cxmjx--gR4m54pdF_nie_y4iWHys83cmWR2R7Bt1KKqB25OmkfCQTJJqIf7QsqangVGMUHwMC39Z9QhrfCFHKVNrlqS503O6b9GitQnXtvUdJhCmomu; pi=4253366368931142%3Bp4253366368931142%3B%E8%82%A1%E5%8F%8B9x56I87727%3BYNigLZRW%2FzMdGgVDOJbwReDWnTPHl51dB0gQLiwaCf1XY98mlJYx6eJbsoYr5Nie%2BX1L%2BzaMsec99KkX%2BT29Ds1arfST7sIBXxjUQ3dp11IPUnXy64PaBFRTHzMRWnCFJvvhc%2FAI41rXSGXolC8YMxI%2BvyPS%2BuErwgOVjC5vvsIiKeO7TLyKkhqqQJPX%2F7RWC5Sf3QLh%3Bdwjn4Xho10%2FKjqOgTWs%2FJF4%2FkdKzeuBwM8sz9aLvJovejAkCAyGMyGYA6AE67Xk2Ki7x8zdfBifF2DG%2Fvf2%2BXAYN8ZVISSEWTIXh32Z5MxEacK4JBTkqyiD93e1vFBOFQ82BqaiVmntUq0V6FrTUHGeh1gG5Sg%3D%3D; uidal=4253366368931142%e8%82%a1%e5%8f%8b9x56I87727; sid=170711377; vtpst=|; quote_lt=1; websitepoptg_api_time=1715777390466; emshistory=%5B%22%E8%BD%AC%E5%80%BA%E6%A0%87%22%2C%22%E8%BD%AC%E5%80%BA%E6%A0%87%E7%9A%84%22%5D; st_si=00364513876913; st_asi=delete; HAList=ty-116-00700-%u817E%u8BAF%u63A7%u80A1%2Cty-1-688695-%u4E2D%u521B%u80A1%u4EFD%2Cty-1-600849-%u4E0A%u836F%u8F6C%u6362%2Cty-1-603361-%u6D59%u6C5F%u56FD%u7965%2Cty-1-603555-ST%u8D35%u4EBA%2Cty-0-000627-%u5929%u8302%u96C6%u56E2%2Cty-0-002470-%u91D1%u6B63%u5927%2Cty-0-832876-%u6167%u4E3A%u667A%u80FD%2Cty-0-300059-%u4E1C%u65B9%u8D22%u5BCC%2Cty-107-CWB-%u53EF%u8F6C%u503AETF-SPDR; st_pvi=26930719093675; st_sp=2024-04-28%2017%3A27%3A05; st_inirUrl=https%3A%2F%2Fcn.bing.com%2F; st_sn=23; st_psi=20240517111108288-113200301321-2767127768'
|
|
220
221
|
while True:
|
|
221
222
|
us_df = get_us_stock_real_time_quotes(cookie_test)
|
|
223
|
+
us_df = us_df.loc[us_df['flow_mv'] != 0]
|
|
224
|
+
us_df = us_df.sort_values(by=['amount'], ascending=False)
|
|
222
225
|
us_stock_df = us_df[[
|
|
223
226
|
"symbol",
|
|
224
227
|
"name",
|
|
@@ -161,8 +161,13 @@ def rename_real_time_quotes_df(temp_df):
|
|
|
161
161
|
"f103": "concept",
|
|
162
162
|
"f352": "average_price",
|
|
163
163
|
"f191": "hk_stock_code",
|
|
164
|
-
"f193": "hk_stock_name"
|
|
164
|
+
"f193": "hk_stock_name",
|
|
165
|
+
"f24": "sixty_day_chg",
|
|
166
|
+
"f25": "now_year_chg",
|
|
165
167
|
})
|
|
168
|
+
temp_df.loc[temp_df['sixty_day_chg'] == '-', 'total_share'] = 0
|
|
169
|
+
|
|
170
|
+
temp_df.loc[temp_df['now_year_chg'] == '-', 'now_year_chg'] = 0
|
|
166
171
|
temp_df.loc[temp_df['total_share'] == '-', 'total_share'] = 0
|
|
167
172
|
temp_df.loc[temp_df['flow_share'] == '-', 'flow_share'] = 0
|
|
168
173
|
temp_df.loc[temp_df['pe_ttm'] == '-', 'pe_ttm'] = 0
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
file_path = os.path.abspath(__file__)
|
|
5
|
+
end = file_path.index('mns') + 16
|
|
6
|
+
project_path = file_path[0:end]
|
|
7
|
+
sys.path.append(project_path)
|
|
8
|
+
from loguru import logger
|
|
9
|
+
import requests
|
|
10
|
+
import pandas as pd
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# year 年
|
|
14
|
+
# quarter 季度
|
|
15
|
+
# month 月度
|
|
16
|
+
# week 周
|
|
17
|
+
# day 日
|
|
18
|
+
def get_xue_qiu_k_line(symbol, period):
|
|
19
|
+
url = "https://stock.xueqiu.com/v5/stock/chart/kline.json"
|
|
20
|
+
|
|
21
|
+
params = {
|
|
22
|
+
"symbol": symbol,
|
|
23
|
+
"begin": "1742574377493",
|
|
24
|
+
"period": period,
|
|
25
|
+
"type": "before",
|
|
26
|
+
"count": "-120084",
|
|
27
|
+
"indicator": "kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
headers = {
|
|
31
|
+
"accept": "application/json, text/plain, */*",
|
|
32
|
+
"accept-language": "zh-CN,zh;q=0.9",
|
|
33
|
+
"origin": "https://xueqiu.com",
|
|
34
|
+
"priority": "u=1, i",
|
|
35
|
+
"referer": "https://xueqiu.com/S/SZ300879?md5__1038=n4%2BxgDniDQeWqxYwq0y%2BbDyG%2BYDtODuD7q%2BqRYID",
|
|
36
|
+
"sec-ch-ua": '"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"',
|
|
37
|
+
"sec-ch-ua-mobile": "?0",
|
|
38
|
+
"sec-ch-ua-platform": '"Windows"',
|
|
39
|
+
"sec-fetch-dest": "empty",
|
|
40
|
+
"sec-fetch-mode": "cors",
|
|
41
|
+
"sec-fetch-site": "same-site",
|
|
42
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
|
|
43
|
+
"cookie": "xq_a_token=cc9943aa6d41f0ae420f49b428f2f90a472b070a;"
|
|
44
|
+
" xqat=cc9943aa6d41f0ae420f49b428f2f90a472b070a; "
|
|
45
|
+
"xq_r_token=20869bd02083b2ef75d4d4b7654f827f00fdcd22;"
|
|
46
|
+
" xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTc0NDc2NTA3MCwiY3RtIjoxNzQyNDg4OD"
|
|
47
|
+
"kyNDc1LCJjaWQiOiJkOWQwbjRBWnVwIn0.Ep9IIWPMwb85xYIJ_pmYTDmUmcySD4t5nv4LpYSqdLJzNzqgvzGFx6vowXm-ZtyePuppJxd2YjJDREHu7OkvZk"
|
|
48
|
+
"qHRGMGQOhuCDzyMQjpND2yTgyOTNkn2hNs0e5p4FihaSeRmLu8vQDU17No3LjM3y4-0caZ-8LNJnOm0Wet1uOD7h9ASf7sLRQCjGyB-Pd4D2r-213umj7c6TD"
|
|
49
|
+
"V5ud3rfTsUlCG7DwWMAdIZGkew5CX2WRXOz-G2Duf3d4GMRggiaLHVsP6PSTzOGUQBF1zAg5hprkxK3J_dV1SdiuaAZxJDp3FCFQ5vG0JkcOs9CLB5z-92kQ2-"
|
|
50
|
+
"YEhAkd3PCpGKQ; cookiesu=251742488951389; u=251742488951389; is_overseas=0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1742488952; "
|
|
51
|
+
"Hm_lpvt_1db88642e346389874251b5a1eded6e3=1742488952; HMACCOUNT=A216813C8A2D1B76; device_id=e7bd664c2ad4091241066c3a2ddbd736; "
|
|
52
|
+
"ssxmod_itna=eqIxgDB7q+0=ei7qqAKG7D8D9DQqqiIqGHDyxW9P0CGDLxn4GQDUiHxttBmPvc7EkqE5gD0yG3wDA5Dnzx7YDt=SpND0mTAc3qACQIwPw+Ocyrm2tfA"
|
|
53
|
+
"br4MWHlPP5jokUkpQw5xB3DExGkeeu77xiirx0rD0eDPxDYDGbWD7PDoxDrF8YDjl7pOUgwoz4DKx0kDY5Dw1RADiPD7ZBDkOcwXSvmFxDzFZLaqle42Di3N+EsEzRfDi5"
|
|
54
|
+
"x79cwD7v3DlaPFsdD0119FgoIiya2PpBEv40OD0ILF4BfuYoA8872wprrZQ4F2G0YjEDQ0DO03e7qSh5tY7t0sOGe2GDNQKc3xeY5ldw7xDipwGg2QIhxjhrCtccU5ZUB="
|
|
55
|
+
"+VcwwiGxCeBGPyew=jp=lDqQ4ZAqzBqPj0=jh1Fxq7De903iYLYD; ssxmod_itna2=eqIxgDB7q+0=ei7qqAKG7D8D9DQqqiIqGHDyxW9P0CGDLxn4GQDUiHxttBmPvc7E"
|
|
56
|
+
"kqE5wDDcA73imLDD7Djbb5NZaEoD/zpofwEa9m=Fn7T5jOiFKWsbAb9Qi=utFFLry0Ii9=+TINLqBPqzemrFP/ehSZRDixpiEh5WeA5WXGvaHoKw+rEINZbPjOApkpEQG8cm="
|
|
57
|
+
"rHCN=0DUoI+HxcF6Zohnh3hUEcTYQykDVyXyfHsX9eFZAlAHxdWq/5qZ=Eh0KCAV2xA2/yKFtivK+DzQb0sajPwql5xkzLh966v0g6MzzUlc4SFYAv3YKBjP7rhhOdqmKEa"
|
|
58
|
+
"j6C6PKp+Pq2QEP6heBX7BU7iG=GGLA6IrDjYvHCDh1tr93XpUr9X9rPjYUvWxPI0RBwHUpC+fs6xsg07+ifjd9gU26do2K0lLwRhhPfppAKj5+gow2IN3KLQ0K1P/mY9BKKYAt"
|
|
59
|
+
"2Qx/34rb5evohIrUI=DKe1djnDvrDnjwcBbgK2lzA3eQVix=46cxf77D9GKug6PLBL0Fi67Htrl2K5CP9PQDHb1Yjx0ttRKjCU7hE3GIs2Y88AdxfF+Iuc2=IenBfqW52ngad82Y"
|
|
60
|
+
"8KvKqn5xEiODXgYCKgGxyOjl4+v9bvIm120i2pN6o6dBRZqxpvsA4S9YP2TPjS+1/4ZnVeYQ+4=UCevs5P3Qf2x6w8s=U7dD=cvG1skhxiD8Kjl32RGPC=4FDHIrQQoKGnixsWzp"
|
|
61
|
+
"Fb7F=PlrD/3=0F6DNx2hDnr4RDW7WGYSiPQFihqY15iS7GAr44w1+x/3wnYQ4=rN/wOitjqZ0N0FRpxlw/7PGeZADD"
|
|
62
|
+
}
|
|
63
|
+
try:
|
|
64
|
+
response = requests.get(
|
|
65
|
+
url=url,
|
|
66
|
+
params=params,
|
|
67
|
+
headers=headers
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
if response.status_code == 200:
|
|
71
|
+
response_data = response.json()
|
|
72
|
+
df = pd.DataFrame(
|
|
73
|
+
data=response_data['data']['item'],
|
|
74
|
+
columns=response_data['data']['column']
|
|
75
|
+
)
|
|
76
|
+
# 处理DataFrame列(秒级时间戳)
|
|
77
|
+
df['str_day'] = pd.to_datetime(df['timestamp'], unit='ms').dt.normalize()
|
|
78
|
+
df["str_day"] = df["str_day"].dt.strftime("%Y-%m-%d")
|
|
79
|
+
return df
|
|
80
|
+
else:
|
|
81
|
+
return pd.DataFrame()
|
|
82
|
+
except BaseException as e:
|
|
83
|
+
logger.error("同步股票年度数据出现异常:{},{}", symbol, e)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
if __name__ == '__main__':
|
|
87
|
+
test_df = get_xue_qiu_k_line('SZ000001', 'year')
|
|
88
|
+
print(test_df)
|
|
@@ -71,6 +71,8 @@ mns_common/api/ths/zt/ths_stock_zt_pool_api.py
|
|
|
71
71
|
mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py
|
|
72
72
|
mns_common/api/us/__init__.py
|
|
73
73
|
mns_common/api/us/ths_us_company_info_api.py
|
|
74
|
+
mns_common/api/xueqiu/__init__.py
|
|
75
|
+
mns_common/api/xueqiu/xue_qiu_k_line_api.py
|
|
74
76
|
mns_common/component/__init__.py
|
|
75
77
|
mns_common/component/common_service_fun_api.py
|
|
76
78
|
mns_common/component/cache/__init__.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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/em/east_money_stock_gdfx_free_top_10_api.py
RENAMED
|
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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/common/kpl_common_field_constant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/selection/kpl_selection_plate_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py
RENAMED
|
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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/company/ths_company_announce_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/company/ths_company_info_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/app/ths_concept_detail_app.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/app/ths_concept_index_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_common_js_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_company_info_web.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_concept_detail_web.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/concept/web/ths_concept_index_web.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/api/ths/self_choose/ths_self_choose_api.py
RENAMED
|
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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/classify/symbol_classify_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/classify/symbol_classify_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/company/company_common_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/cookie/cookie_info_service.py
RENAMED
|
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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/industry/ths_industry_index_api.py
RENAMED
|
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
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/k_line/patterns/pattern_Enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/price/trade_price_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3 → mns_common-1.3.5.5}/mns_common/component/self_choose/black_list_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.3/mns_common/db/v2 → mns_common-1.3.5.5/mns_common/component/tfp}/__init__.py
RENAMED
|
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
|