Newer
Older
py_east_money / getAllDayLine.py
bdapp on 9 Apr 2020 2 KB init
# coding=utf-8

import time
import httpConn
import dbConn
from multiprocessing.dummy import Pool as ThreadPool

# lines = []

def getAllCode():
    url = 'http://41.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=5000&po=1&np=1&ut=&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:13,m:0+t:80,m:1+t:2,m:1+t:23&fields=f12,f13,f14'
    conn = httpConn.HttpConnect()
    data = conn.request_get(url)
    # print(data)


    if data == '':
        print('查询code失败')

    else:
        db = dbConn.MY_SQL()
        db.save_code_table(data['data']['diff'])

        getHistoryDayLine('1.000001')
        getHistoryDayLine('0.399001')

        # codes = []
        # codes.append('1.000001')
        # codes.append('0.399001')
        for i in data['data']['diff']:
            code = str(i['f12'])
            market = str(i['f13'])
            # codes.append(market + '.' + code)
            getHistoryDayLine(market + '.' + code)

        # pool = ThreadPool(10)
        # pool.map(getHistoryDayLine, codes)
        # pool.close()
        # pool.join()
        #
        # print(len(lines))
        # db = dbConn.MY_SQL()
        # db.save_day_line_table(lines)




def getHistoryDayLine(code):
    url = 'http://28.push2his.eastmoney.com/api/qt/stock/kline/get?secid='+code+'&ut=&fields1=f1%2Cf2%2Cf3%2Cf4%2Cf5&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58&klt=101&fqt=0&end=20500101&lmt=10000'
    conn = httpConn.HttpConnect()
    res = conn.request_get(url)
    print(code)

    if res == '':
        print('查询dayLine失败')

    else:
        data = res['data']
        lines = []
        preShouPan = 0
        for i in data['klines']:
            arr = i.split(',')
            arr.append(data['code'])
            arr.append(data['name'])
            arr.append(data['market'])

            if preShouPan == 0:
                arr.append(0)
            else:
                arr.append('%.3f' % ((float(arr[2]) - float(preShouPan))/float(preShouPan)*100))

            preShouPan = float(arr[2])
            # print(arr)

            lines.append(arr)

        db = dbConn.MY_SQL()
        db.save_day_line_table(lines)

    time.sleep(1)


getAllCode()