hcwzwx 发表于 2015-12-15 10:51:12

Python改写的查看股票实时行情的代码

#coding=utf-8


import os, io, sys, re, time, json, base64
import webbrowser, urllib.request




period_All_List = [
                  "min",      
                  "daily",   
                  "weekly",
                  "monthly"   
                  ]
period_min = period_All_List




ChinaStockIndividualList = [
    "600801",#股票代码
    "002511"#
]
#键值对
ChinaStockIndividualList2 = {
    "600801":11.602,#股票代码,成本价
    "002511":14.469#股票代码,成本价
}


bodong = 0


def getChinaStockIndividualInfo(stockCode, period):
    try:
      exchange = "sh" if (int(stockCode) // 100000 == 6) else "sz"
      dataUrl = "http://hq.sinajs.cn/list=" + exchange + stockCode
      stdout = urllib.request.urlopen(dataUrl)
      stdoutInfo = stdout.read().decode('gb2312')
      tempData = re.search('''(")(.+)(")''', stdoutInfo).group(2)
      stockInfo = tempData.split(",")
      stockName   = stockInfo
      stockStart= stockInfo
      stockLastEnd= stockInfo
      stockCur    = stockInfo
      stockMax    = stockInfo
      stockMin    = stockInfo
      stockUp   = round(float(stockCur) - float(stockLastEnd), 2)
      stockRange= round(float(stockUp) / float(stockLastEnd), 2) * 100
      stockVolume = round(float(stockInfo) / (100 * 10000), 2)
      stockMoney= round(float(stockInfo) / (100000000), 2)
      stockTime   = stockInfo
      stockUpRate = round((float(stockUp)/float(stockLastEnd)),3)*100
      content = "" + stockName + "(" + stockCode + ")\n" + "当前:" + stockCur+",昨收:"+str(stockLastEnd)\
                  + ",涨跌:" + str(stockUp)+" ,比例:"+str(stockUpRate)+"%"
      twitter = {'message': content}
    except Exception as e:
      print(">>>>>> Exception: " + str(e))
    else:
      return content
      #return twitter
    finally:
      None


def getChinaStockIndividualInfo2(stockCode, period,stockCodeValue):
    try:
      exchange = "sh" if (int(stockCode) // 100000 == 6) else "sz"
      dataUrl = "http://hq.sinajs.cn/list=" + exchange + stockCode
      stdout = urllib.request.urlopen(dataUrl)
      stdoutInfo = stdout.read().decode('gb2312')
      tempData = re.search('''(")(.+)(")''', stdoutInfo).group(2)
      stockInfo = tempData.split(",")
      stockName   = stockInfo
      stockStart= stockInfo
      stockLastEnd= stockInfo
      stockCur    = stockInfo
      stockMax    = stockInfo
      stockMin    = stockInfo
      stockUp   = round(float(stockCur) - float(stockLastEnd), 2)
      stockRange= round(float(stockUp) / float(stockLastEnd), 2) * 100
      stockVolume = round(float(stockInfo) / (100 * 10000), 2)
      stockMoney= round(float(stockInfo) / (100000000), 2)
      stockTime   = stockInfo
      stockUpRate ="%.2f" %(round((float(stockUp)/float(stockLastEnd)),3)*100)#格式化输出
      zenfu = round((float(stockCur)-stockCodeValue),3)
      content =stockName + "(" + stockCode + ")\n" + "当前价:" + stockCur+", 昨天收盘价:"+str(stockLastEnd)\
                  + ", 波动幅度:" + str(stockUp)+", 波动比率:"+str(stockUpRate)+"%"+", 总涨跌幅度:"+str(zenfu)
      twitter = {'message': content}
    except Exception as e:
      print(">>>>>> Exception: " + str(e))
    else:
      return content
      #return twitter
    finally:
      None


def test_china_individual_data2():
    for stockCodeKey,stockCodeValue in ChinaStockIndividualList2.items():
      #print(type(stockCodeKey),type(stockCodeValue)) #字符串型,浮点型
      twitter= getChinaStockIndividualInfo2(stockCodeKey, period_min,stockCodeValue)
      print(twitter)
# print(twitter['message'])
def test_china_individual_data():
    for stockCodeKey in ChinaStockIndividualList:
      twitter= getChinaStockIndividualInfo(stockCodeKey, period_min)
      print(twitter)
# print(twitter['message'])
def main():
    "main function"
    print(base64.b64decode(b'Q29we**Z2h0IChjKSAyMDEyIERvdWN1YmUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg==').decode())
    print("\n")
    test_china_individual_data2()




if __name__ == '__main__':
    main()
页: [1]
查看完整版本: Python改写的查看股票实时行情的代码