#!/usr/bin/env python # -*- coding:utf-8 -*- ''' 全球市场 Created on 2016/11/27 @author: Jimmy Liu @group : waditu @contact: jimmysoa@sina.cn ''' import pandas as pd from tushare.stock import cons as ct from tushare.util import dateu as du try: from urllib.request import urlopen, Request except ImportError: from urllib2 import urlopen, Request def global_realtime(symbols=None): """ 全球实时指数 """ symbols_list = '' if symbols is None or symbols == '': symbols_list = ct.GLOBAL_HQ_SYMBOL else: if isinstance(symbols, list) or isinstance(symbols, set) or isinstance(symbols, tuple) or isinstance(symbols, pd.Series): for code in symbols: symbols_list += 'znb_' + code + ',' else: symbols_list = 'znb_' + symbols symbols_list = symbols_list[:-1] if len(symbols_list) > 8 else symbols_list request = Request(ct.LIVE_DATA_URL%(ct.P_TYPE['http'], ct.DOMAINS['sinahq'], du._random(), symbols_list)) content = urlopen(request,timeout=10).readlines() datalist = [] for cont in content: arrs = [] cont = cont.decode('GBK') cont = cont.split('=') symbolstr = cont[0].split('_') symbol = symbolstr[2] vals = cont[1][1:-3] valarr = vals.split(',') if (symbol == 'sh000001') or (symbol == 'sz399001'): price = float(valarr[3]) preclose = float(valarr[2]) chg = (price - preclose) / preclose * 100 arrs = [symbol, valarr[0], valarr[3], price-preclose , chg, valarr[30] + ' ' + valarr[31]] elif symbol == 'hkHSI': arrs = [symbol, valarr[1], valarr[6], valarr[7], valarr[8], valarr[17].replace('/', '-') + ' ' + valarr[18] + ':00'] else: arrs = [symbolstr[3], valarr[0], valarr[1], valarr[2], valarr[3], du.int2time(int(valarr[5]))] datalist.append(arrs) df = pd.DataFrame(datalist, columns=ct.GLOBAL_HQ_COLS) return df