Ejemplo n.º 1
0
def _sh_mx(data, date="", start="", end="", symbol="", pageNo="", beginPage="", endPage="", retry_count=3, pause=0.001):
    for _ in range(retry_count):
        time.sleep(pause)
        ct._write_console()
        try:
            tail = "&pageHelp.pageNo=%s&pageHelp.beginPage=%s&pageHelp.endPage=%s" % (pageNo, beginPage, endPage)
            if pageNo == "":
                pageNo = 6
                tail = ""
            else:
                pageNo += 5
            beginPage = pageNo
            endPage = pageNo + 4
            ref = rv.MAR_SH_HZ_REF_URL % (ct.P_TYPE["http"], ct.DOMAINS["sse"])
            clt = Client(
                rv.MAR_SH_MX_URL
                % (
                    ct.P_TYPE["http"],
                    ct.DOMAINS["sseq"],
                    ct.PAGES["qmd"],
                    _random(5),
                    date,
                    symbol,
                    start,
                    end,
                    tail,
                    _random(),
                ),
                ref=ref,
                cookie=rv.MAR_SH_COOKIESTR,
            )
            lines = clt.gvalue()
            lines = lines.decode("utf-8") if ct.PY3 else lines
            lines = lines[19:-1]
            lines = json.loads(lines)
            pagecount = int(lines["pageHelp"].get("pageCount"))
            datapage = int(pagecount / 5 + 1 if pagecount % 5 > 0 else pagecount / 5)
            if pagecount == 0:
                return data
            if pageNo == 6:
                ct._write_tips(lines["pageHelp"].get("total"))
            df = pd.DataFrame(lines["result"], columns=rv.MAR_SH_MX_COLS)
            df["opDate"] = df["opDate"].map(lambda x: "%s-%s-%s" % (x[0:4], x[4:6], x[6:8]))
            data = data.append(df, ignore_index=True)
            if beginPage < datapage * 5:
                data = _sh_mx(
                    data,
                    start=start,
                    end=end,
                    pageNo=pageNo,
                    beginPage=beginPage,
                    endPage=endPage,
                    retry_count=retry_count,
                    pause=pause,
                )
        except _network_error_classes:
            pass
        else:
            return data
    raise IOError(ct.NETWORK_URL_ERROR_MSG)
Ejemplo n.º 2
0
def _sh_mx(data,
           date='',
           start='',
           end='',
           symbol='',
           pageNo='',
           beginPage='',
           endPage='',
           retry_count=3,
           pause=0.001):
    for _ in range(retry_count):
        time.sleep(pause)
        ct._write_console()
        try:
            tail = '&pageHelp.pageNo=%s&pageHelp.beginPage=%s&pageHelp.endPage=%s' % (
                pageNo, beginPage, endPage)
            if pageNo == '':
                pageNo = 6
                tail = ''
            else:
                pageNo += 5
            beginPage = pageNo
            endPage = pageNo + 4
            ref = rv.MAR_SH_HZ_REF_URL % (ct.P_TYPE['http'], ct.DOMAINS['sse'])
            clt = Client(
                rv.MAR_SH_MX_URL %
                (ct.P_TYPE['http'], ct.DOMAINS['sseq'], ct.PAGES['qmd'],
                 _random(5), date, symbol, start, end, tail, _random()),
                ref=ref,
                cookie=rv.MAR_SH_COOKIESTR)
            lines = clt.gvalue()
            lines = lines.decode('utf-8') if ct.PY3 else lines
            lines = lines[19:-1]
            lines = json.loads(lines)
            pagecount = int(lines['pageHelp'].get('pageCount'))
            datapage = int(pagecount / 5 +
                           1 if pagecount % 5 > 0 else pagecount / 5)
            if pagecount == 0:
                return data
            if pageNo == 6:
                ct._write_tips(lines['pageHelp'].get('total'))
            df = pd.DataFrame(lines['result'], columns=rv.MAR_SH_MX_COLS)
            df['opDate'] = df['opDate'].map(lambda x: '%s-%s-%s' %
                                            (x[0:4], x[4:6], x[6:8]))
            data = data.append(df, ignore_index=True)
            if beginPage < datapage * 5:
                data = _sh_mx(data,
                              start=start,
                              end=end,
                              pageNo=pageNo,
                              beginPage=beginPage,
                              endPage=endPage,
                              retry_count=retry_count,
                              pause=pause)
        except Exception as e:
            print(e)
        else:
            return data
    raise IOError(ct.NETWORK_URL_ERROR_MSG)
Ejemplo n.º 3
0
def _sh_mx(data, date='', start='', end='', 
           symbol='',
           pageNo='', beginPage='',
           endPage='',
           retry_count=3, pause=0.001):
    for _ in range(retry_count):
        time.sleep(pause)
        ct._write_console()
        try:
            tail = '&pageHelp.pageNo=%s&pageHelp.beginPage=%s&pageHelp.endPage=%s'%(pageNo,
                                    beginPage, endPage)
            if pageNo == '':
                pageNo = 6
                tail = ''
            else:
                pageNo += 5
            beginPage = pageNo
            endPage = pageNo + 4
            url = rv.MAR_SH_MX_URL%(ct.P_TYPE['http'], ct.DOMAINS['sseq'],
                                    ct.PAGES['qmd'], _random(5), date, 
                                    symbol, start, end, tail,
                                    _random())
            ref = rv.MAR_SH_HZ_REF_URL%(ct.P_TYPE['http'], ct.DOMAINS['sse'])
            clt = Client(url, ref=ref, cookie=rv.MAR_SH_COOKIESTR)
            lines = clt.gvalue()
            lines = lines.decode('utf-8') if ct.PY3 else lines
            lines = lines[19:-1]
            lines = json.loads(lines)
            pagecount = int(lines['pageHelp'].get('pageCount'))
            datapage = int(pagecount/5+1 if pagecount%5>0 else pagecount/5)
            if pagecount == 0:
                return data
            if pageNo == 6:
                ct._write_tips(lines['pageHelp'].get('total'))
            df = pd.DataFrame(lines['result'], columns=rv.MAR_SH_MX_COLS)
            df['opDate'] = df['opDate'].map(lambda x: '%s-%s-%s'%(x[0:4], x[4:6], x[6:8]))
            df = df.set_index('opDate')
            data = data.append(df, ignore_index=True)
            if beginPage < datapage*5:
                data = _sh_mx(data, start=start, end=end, pageNo=pageNo, 
                       beginPage=beginPage, endPage=endPage, 
                       retry_count=retry_count, pause=pause)
        except _network_error_classes:
            pass
        else:
            return data
    raise IOError(ct.NETWORK_URL_ERROR_MSG)