第一段 所有股票 周期:天  复权:不复权

# encoding:utf-8
import os
import sys
import pandas as qh_pd
import datetime
import time
import random
if __name__ == "__main__":print("本文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), ".."))  # 返回当前工作目录   先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path)  # 添加自己指定的搜索路径
else:print("外文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), ".."))  # 返回当前工作目录   先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path)  # 添加自己指定的搜索路径
#引入自己的文件模块
import QH001_Spider_Object.QH_DongFang_Object as Qh_Req_Obj           # 东方财富
import QH001_Spider_Object.QH_SouHu_Home_Object as Qh_SHH_Obj         # 搜狐交易日
import QH_Stock_Treasure_Box.qh_sqlite_orm_json as qh_db              # 数据库
import QH_Stock_Treasure_Box.qh_Log as qh_log                         # 日志
import QH_Stock_Treasure_Box.qh_parameter_chuanru as qh_chcan         # 传入参数
import QH_DF_Interface as qh_df_interface
import QH_IP_KDL as qh_ip_m                                           #ipif __name__ == "__main__":qh_Log = qh_log.Qh_log_write(qh_path, "Qh_DF_His_D_Log")qh_Trading_day = Qh_SHH_Obj.QH_Get_Dangri_Date()  # 同一个文件的函数  日期会自动传入qh_Log.qh_Log("获取交易日期-搜狐,交易日期:{}".format(qh_Trading_day))qh_all_stock_list_sql = qh_chcan.Qh_CX_Sql_DB(qh_path, qh_chaxun_id="QH_ChaXun_00005")qh_Log.qh_Log("获取所有股票代码,代码列表:{}".format(qh_all_stock_list_sql))qh_ip_list = qh_ip_m.Qh_Get_Ip(qh_path, qh_flag="B")qh_Log.qh_Log("获取所有HTTP代理IP,HTTP代理IP列表:{}".format(qh_ip_list))qh_wangzhan0 = "DF"  # 网站代码qh_Log.qh_Log("网站代码:{}".format(qh_wangzhan0))qh_klt_dic = {"天": "D", "周": "W", "月": "M"}qh_Log.qh_Log("周期字典:{}".format(qh_klt_dic))qh_fqt_dic = {"不复权": "0", "前复权": "1", "后复权": "2"}qh_Log.qh_Log("是否复权字典:{}".format(qh_fqt_dic))qh_db_canshu = qh_chcan.Qh_InF_To_DB(qh_path, [], qh_spider_id="QH_Spider_00008", qh_canshu=True)qh_Log.qh_Log("获取所有数据库参数:{}".format(qh_db_canshu))qh_table_00 = qh_db_canshu['QH_Table']  # 需补充参数的组合表名qh_Log.qh_Log("需补充参数的组合表名:{}".format(qh_table_00))qh_sql0 = qh_chcan.Qh_CX_Sql_DB(qh_path, qh_chaxun_id="QH_ChaXun_00015", qh_sql0="", qh_ret_sql=True)qh_Log.qh_Log("获取需要补充参数的股票流记录SQL:{}".format(qh_sql0))#循环所有股票列表for qh_i, qh_row in enumerate(qh_all_stock_list_sql[1][1]):qh_code = qh_row[15]   # 股票代码qh_zjs = qh_row[16]    # 证交所qh_name = qh_row[17]   # 股票名称# 组合股票代码if str(qh_zjs) == "0":qh_code = "SZ{}".format(qh_code)else:qh_code = "SH{}".format(qh_code)qh_Log.qh_Log("正在获取第{}支股票,股票代码:{},证交所:{},股票名称:{}".format(qh_i, qh_code, qh_zjs, qh_name))qh_klt = "天"qh_fqt = "不复权"qh_Log.qh_Log("周期:{},复权:{}".format(qh_klt, qh_fqt))qh_df_interface.Qh_Get_His_Flow(qh_code, qh_name, qh_Trading_day, qh_klt, qh_fqt,qh_wangzhan0, qh_klt_dic, qh_fqt_dic,qh_table_00, qh_sql0, qh_Log, qh_ip_list)

第二段 所有股票 所有周期:天/周/月  所有复权:不复权/前复权/后复权

# encoding:utf-8
import os
import sys
import pandas as qh_pd
import datetime
import time
import random
if __name__ == "__main__":print("本文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), ".."))  # 返回当前工作目录   先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path)  # 添加自己指定的搜索路径
else:print("外文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), ".."))  # 返回当前工作目录   先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path)  # 添加自己指定的搜索路径
#引入自己的文件模块
import QH001_Spider_Object.QH_DongFang_Object as Qh_Req_Obj           # 东方财富
import QH001_Spider_Object.QH_SouHu_Home_Object as Qh_SHH_Obj         # 搜狐交易日
import QH_Stock_Treasure_Box.qh_sqlite_orm_json as qh_db              # 数据库
import QH_Stock_Treasure_Box.qh_Log as qh_log                         # 日志
import QH_Stock_Treasure_Box.qh_parameter_chuanru as qh_chcan         # 传入参数
import QH_DF_Interface as qh_df_interface
import QH_IP_KDL as qh_ip_m                                           #ipif __name__ == "__main__":qh_Log = qh_log.Qh_log_write(qh_path, "Qh_DF_His_DWM_Log")qh_Trading_day = Qh_SHH_Obj.QH_Get_Dangri_Date()                  # 同一个文件的函数  日期会自动传入qh_Log.qh_Log("获取交易日期-搜狐,交易日期:{}".format(qh_Trading_day))qh_all_stock_list_sql = qh_chcan.Qh_CX_Sql_DB(qh_path, qh_chaxun_id="QH_ChaXun_00005")qh_Log.qh_Log("获取所有股票代码,代码列表:{}".format(qh_all_stock_list_sql))qh_ip_list = qh_ip_m.Qh_Get_Ip(qh_path, qh_flag="B")qh_Log.qh_Log("获取所有HTTP代理IP,HTTP代理IP列表:{}".format(qh_ip_list))qh_wangzhan0 = "DF"  # 网站代码qh_Log.qh_Log("网站代码:{}".format(qh_wangzhan0))qh_klt_dic = {"天": "D", "周": "W", "月": "M"}qh_Log.qh_Log("周期字典:{}".format(qh_klt_dic))qh_fqt_dic = {"不复权": "0", "前复权": "1", "后复权": "2"}qh_Log.qh_Log("是否复权字典:{}".format(qh_fqt_dic))qh_db_canshu = qh_chcan.Qh_InF_To_DB(qh_path, [], qh_spider_id="QH_Spider_00008", qh_canshu=True)qh_Log.qh_Log("获取所有数据库参数:{}".format(qh_db_canshu))qh_table_00 = qh_db_canshu['QH_Table']  # 需补充参数的组合表名qh_Log.qh_Log("需补充参数的组合表名:{}".format(qh_table_00))qh_sql0 = qh_chcan.Qh_CX_Sql_DB(qh_path, qh_chaxun_id="QH_ChaXun_00015", qh_sql0="", qh_ret_sql=True)qh_Log.qh_Log("获取需要补充参数的股票流记录SQL:{}".format(qh_sql0))# 循环所有股票列表for qh_i,qh_row in enumerate(qh_all_stock_list_sql[1][1]):qh_code = qh_row[15]  # 股票代码qh_zjs = qh_row[16]  # 证交所qh_name = qh_row[17]  # 股票名称# 组合股票代码if str(qh_zjs) == "0":qh_code = "SZ{}".format(qh_code)else:qh_code = "SH{}".format(qh_code)qh_Log.qh_Log("正在获取第{}支股票,股票代码:{},证交所:{},股票名称:{}".format(qh_i,qh_code,qh_zjs,qh_name))for qh_key in qh_klt_dic:qh_klt = qh_key          #周期for qh_key01 in qh_fqt_dic:qh_fqt = qh_key01    #复权qh_Log.qh_Log("周期:{},复权:{}".format(qh_klt, qh_fqt))qh_df_interface.Qh_Get_His_Flow(qh_code, qh_name, qh_Trading_day, qh_klt, qh_fqt,qh_wangzhan0, qh_klt_dic, qh_fqt_dic,qh_table_00, qh_sql0, qh_Log,qh_ip_list)

第三段:调用函数

def Qh_Get_His_Flow(qh_code,qh_name,qh_Trading_day, qh_klt, qh_fqt,qh_wangzhan0,qh_klt_dic,qh_fqt_dic,qh_table_00,qh_sql0,qh_Log,qh_ip_list=[]):"""获取所有历史交易数据函数         作者:阙辉:param qh_code:         股票代码  带证交所 SZ000001:param qh_name:         股票名称:param qh_Trading_day:  最近交易日期:param qh_klt:          周期:param qh_fqt:          复权:param qh_wangzhan0:    网站:param qh_klt_dic:      周期字典:param qh_fqt_dic:      复权字典:param qh_table_00:     需传参数的表名:param qh_sql0:         需传参数的SQL:param qh_ip_list:      代理IP:return:"""qh_flow_jilu = []      #初始化记录列表qh_wangzhan = qh_wangzhan0 + "_" + str(qh_klt_dic[qh_klt]) + "_" + str(qh_fqt_dic[qh_fqt])   #拼接网站id  关键代码,隔离了周期和复权qh_flow_jilu.append(qh_wangzhan)     # qh_flow_jilu 0 网站qh_flow_jilu.append(qh_code)         # qh_flow_jilu 1 股票代码qh_flow_jilu.append(qh_name)         # qh_flow_jilu 2 股票名称qh_flow_jilu.append(qh_Trading_day)  # qh_flow_jilu 3 交易日期# 爬取历史股票qh_type_gg = "QH_JY_HIS"         # 获取历史数据类型  历史交易数据qh_flow_jilu.append(qh_type_gg)  # #qh_flow_jilu 4 交易类型   历史交易qh_end_date = qh_Trading_day     # 最近一个交易日期# 判断最近交易日期的历史数据是否爬取try:qh_sql = qh_sql0.format(qh_wangzhan, qh_code, qh_type_gg)qh_list_qq = qh_chcan.Qh_CX_Sql_DB(qh_path, qh_chaxun_id="QH_ChaXun_00015", qh_sql0=qh_sql, qh_ret_sql=False,qh_filed=False)qh_list_qq = qh_list_qq[1][1]if len(qh_list_qq) > 0:qh_list_qq = qh_list_qq[0]      # 取第一行qh_pq_yy = qh_list_qq[8]        # 爬取状态qh_zong_count = qh_list_qq[10]  # 上一次总数量qh_stare_date = qh_list_qq[6]   # 上一次爬取交易日期qh_Log.qh_Log("股票流有记录,记录为:爬取状态:{},上一次总数量:{},上一次爬取交易日期:{}".format(qh_pq_yy, qh_zong_count, qh_stare_date))else:qh_pq_yy = "N"  # 爬取状态qh_zong_count = 0  # 总数量qh_stare_date = "1989-01-01"    # 默认起始日期qh_Log.qh_Log("股票流无记录,默认记录为:爬取状态:{},上一次总数量:{},上一次爬取交易日期:{}".format(qh_pq_yy, qh_zong_count, qh_stare_date))except:qh_pq_yy = "N"  # 爬取状态qh_zong_count = 0  # 总数量qh_stare_date = "1989-01-01"  # 默认起始日期qh_Log.qh_Log("股票流表未创建,默认记录为:爬取状态:{},上一次总数量:{},上一次爬取交易日期:{}".format(qh_pq_yy, qh_zong_count, qh_stare_date))# 判断是否要请求数据if qh_pq_yy == "Y" and str(qh_end_date) == str(qh_stare_date):qh_Log.qh_Log("股票代码({})已爬取,最后交易日期{},阙辉!".format(qh_code, qh_end_date))else:# 随机从IP列表中获取一个代理IPif len(qh_ip_list) > 0:qh_ip_kk = random.choice(qh_ip_list)qh_htt = qh_ip_kk[1]qh_htt = "https"qh_ip = qh_ip_kk[0]qh_htt_ip = "{}\\:{}".format(qh_htt, qh_ip)qh_proxy = {qh_htt: qh_htt_ip}qh_Log.qh_Log("随机获取代理IP({}),阙辉!".format(qh_proxy))else:qh_proxy = {}qh_Log.qh_Log("不使用代理IP,阙辉!")# 请求数据qh_Log.qh_Log("开始请求({}),阙辉!".format(qh_code))qh_his_jiaoyi_list = Qh_DF_His_Flow_Interface01(qh_Trading_day, qh_code,qh_stare_date=qh_stare_date,qh_end_date=qh_end_date, qh_klt=qh_klt,qh_fqt=qh_fqt,qh_spider_id="QH_Spider_00008",qh_out="qh_list", qh_day_t=False,qh_proxy=qh_proxy)qh_his_jiaoyi_list_len = len(qh_his_jiaoyi_list)  # 统计本次的数据量qh_new_table = qh_table_00.format(qh_code)  # 生成表格名qh_Log.qh_Log("组合存储表格名({}),阙辉!".format(qh_new_table))# 存储数据 返回存储状态if qh_his_jiaoyi_list_len > 0:qh_Log.qh_Log("请求({})数据成功,本次共{}条,阙辉!".format(qh_code,qh_his_jiaoyi_list_len))qh_cc_star = qh_chcan.Qh_InF_To_DB(qh_path, qh_his_jiaoyi_list, qh_spider_id="QH_Spider_00008_D",qh_canshu=False, qh_new_table=qh_new_table)else:qh_cc_star = False#判断数据是否更新成功,更新成功则if qh_cc_star:qh_Log.qh_Log("存储({})数据成功,本次共{}条,阙辉!".format(qh_code, qh_his_jiaoyi_list_len))qh_flow_jilu.append("Y")  # #qh_flow_jilu 5 是否成功 爬取状态qh_flow_jilu.append(qh_his_jiaoyi_list_len)  # #qh_flow_jilu 6 本次数量qh_flow_jilu.append(qh_his_jiaoyi_list_len + int(qh_zong_count))  # #qh_flow_jilu 7 总数量qh_flow_jilu = qh_chcan.Qh_TC_List(qh_flow_jilu, 18)  # 补充不满18的字段为空  #qh_flow_jilu 8以后为空的字段if qh_chcan.Qh_InF_To_DB(qh_path, [qh_flow_jilu], qh_spider_id="QH_Spider_99999"):  # 更新数据存储状态qh_Log.qh_Log("更新股票记录流成功,股票记录流为:{},阙辉!".format(qh_flow_jilu))

获取所有股票历史行情数据相关推荐

  1. 股票历史数据-股票历史行情数据查询

    股票历史数据-股票历史行情数据查询 共享一个股票历史行情数据查询的工具,股票历史行情数据查询的是从股票成立到最近一天的所有历史数据,亲测手机就能查询股票历史行情数据.下载股票历史行情数据 亲测获取步骤 ...

  2. 股票历史行情数据api_历史API

    股票历史行情数据api Introduction 介绍 Access the History API 访问历史记录API Navigate the history 浏览历史 Add an entry ...

  3. 多线程爬虫获取A股历史行情数据!股票量化分析工具QTYX-V2.2.3

    前言 股票数据的获取是从事股票分析的第一步. 数据获取的途径有很多,对大家来说除了数据的质量以外,获取的效率是第二敏感的点. 市面上有一些股票数据服务平台提供了Python接口来获取数据. 总的来说, ...

  4. 利用聚宽获取股票历史行情数据

    1.背景 做量化交易的时候经常要用到股票的历史数据,例子中主要爬取每分钟'date','time''open','close','high','low','volume','money','avg'这 ...

  5. Python量化:获取历史行情数据并计算KDJ指标

    KDJ指标又叫随机指标,是一种相当新颖.实用的技术分析指标,它起先用于期货市场的分析,后被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具. 随机指标KDJ一般是用于股票分析的统计 ...

  6. A股全市场股票历史行情低频日频EOD数据

    A股市场全部历史日频数据每日盘后更新 数据源 本文中的日频数据源来自恒生,包括前后复权和无复权行情,数据分股票代码压缩,每日盘后更新上传网盘 共享网盘链接与详情 全A股票前复权历史行情数据: 链接:h ...

  7. A股全市场股票历史行情1分钟高频数据

    A股全市场股票历史行情1分钟高频数据 百度共享网盘 链接: https://pan.baidu.com/s/1Ki9lBRNrv1_5ufgmNdrlVQ 提取码: fxb4 20210年 -2021 ...

  8. tushare获取沪深300指数历史_从Tushare获取历史行情数据

    从Tushare获取历史行情数据,分为两种,一种是后复权(daily_hfq)数据,一种是不复权(daily)数据,获取到的数据存储在MongoDB数据库中,每个集合(collection)中,数据字 ...

  9. 股票实时行情数据大全

    股票软件都提供自定义公式的功能,但因为常规股票软件都是点播数据,自定义公式对分时行情完全无效,要想更细腻的分析,只能找股票实时行情接口 一般来说,有如下3种版本 屌丝版 去门户财经频道采集数据,百度, ...

最新文章

  1. 使用 Flash Builder 的 Apple iOS 开发过程
  2. 山东大学微生物国家重点实验室刘双江组招聘(肠道微生物方向)
  3. 大数据会消灭律师这一职业吗?
  4. Py中enumerate方法【转载】
  5. VxWorks中信号量实现任务间通信与同步机制分析
  6. php gbk字符串 存utf8 html,php utf8 gbk 数组 互转(示例代码)
  7. 深入理解 RecyclerView 系列之:ItemDecoration
  8. 《Advanced .NET Debugging》 读书笔记 Listing 5-6: Pining的简单示例
  9. ruby web性能响应时间
  10. Lingo建模基础入门
  11. 基于javaweb的员工绩效考核系统
  12. 淘宝css代码生成器_Web开发人员的10个最佳CSS代码生成器
  13. UTM 投影坐标系条带号Zone与EPSG代号计算(Python 实现)
  14. java集合面试题总结
  15. 关于Postman导入json文件报:failed to import data format not recognized异常的处理
  16. 报错——xxx is not defined
  17. swoole php配置文件,EasySwoole分离配置文件
  18. Visual Studio Code 代理设置
  19. aix7.1重装6.1_优化AIX 6.1性能调整
  20. 99%的人误解BLM中的“战略”与“执行”的关系及错误认为BLM/BEM就是战略解码的全部!

热门文章

  1. 四种做动态数据可视化的方法
  2. 概率 插空法和捆绑法
  3. java拆分_Java 拆分 PDF 文档
  4. HashMap初始化长度设置大小
  5. crc生成多项式java_CRC 生成多项式
  6. win10电池图标不能调亮度_win10屏幕亮度无法调节?一招解决Win10电脑亮度调节失灵...
  7. android拍照保存到系统相册,调用系统相机拍照,并且保存到系统相册的一般套路...
  8. OpenCV——Python:像素调整、图片裁剪、形状与文字设置3
  9. 两个天才黑客:一人在牢狱之灾后退隐江湖,一人蜕变成阿里巴巴“守护神”!...
  10. 魔兽mdx文件导出为Ogre Mesh的小进展