linux通过python监控股票股价

电脑知识 投稿 8000 0 评论

python 脚本代码如下,保存文件名为 gupiao.py:


#!/usr/bin/env python
# -*- coding:utf-8 -*-

from colorama import init, Fore, Back, Style
from prettytable import PrettyTable 
import urllib.request
import time

print("author:www.feishuai.vip\n")
#print('current_time:')
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
print()
 
#debug=True
debug=False
x = PrettyTable(['名字', '代码', '时间', '当前价格', '涨跌', '涨跌%', '成交量(手)', '成交额(万)', '总市值(亿)'])
x.align = 'l'
x.align['涨跌%'] = 'r'
x.align['涨跌'] = 'r'

init(autoreset=False)
class Colored(object):
    #  前景色:红色  背景色:默认
    def red(self, s):
        return Fore.RED + s + Fore.RESET
    #  前景色:绿色  背景色:默认
    def green(self, s):
        return Fore.GREEN + s + Fore.RESET
    def yellow(self, s):
        return Fore.YELLOW + s + Fore.RESET
    def white(self,s):
        return Fore.WHITE + s + Fore.RESET
    def blue(self,s):
        return Fore.BLUE + s + Fore.RESET

class Utility:
    def ToGB(str):
        if(debug): print(str)
        return str.decode('gb2312')
 
class StockInfo:
 
    def GetStockStrByNum(num):
        f= urllib.request.urlopen('http://qt.gtimg.cn/q=s_'+ str(num))
        if(debug): print(f.geturl())
        if(debug): print(f.info())
        return f.readline()
        f.close()
 
    def ParseResultStr(resultstr):
        if(debug): print(resultstr)
        slist=resultstr[14:-3]
        if(debug): print(slist)
        slist=slist.split('~')
 
        if(debug) : print(slist)

        color = Colored()#创建Colored对象

        zhangdie = float(slist[4])

        if (zhangdie < 0):
            slist[1] = color.green(slist[1])
            slist[2] = color.green(slist[2])
            slist[3] = color.green(slist[3])
            slist[4] = color.green(slist[4])
            slist[5] = color.green(slist[5] + '%')
            slist[6] = color.green(slist[6])
            slist[7] = color.green(slist[7])
            slist[9] = color.green(slist[9])
        elif (zhangdie > 0):
            slist[1] = color.red(slist[1])
            slist[2] = color.red(slist[2])
            slist[3] = color.red(slist[3])
            slist[4] = color.red(slist[4])
            slist[5] = color.red(slist[5] + '%')
            slist[6] = color.red(slist[6])
            slist[7] = color.red(slist[7])
            slist[9] = color.red(slist[9])
 
        x.add_row([slist[1], slist[2], '', slist[3], slist[4], slist[5], slist[6], slist[7], slist[9]])

    def GetStockInfo(num):
        str=StockInfo.GetStockStrByNum(num)
        strGB=Utility.ToGB(str)
        StockInfo.ParseResultStr(strGB)
 
 
if __name__ == '__main__':
    stocks = [
        'sh000001',#上证指数 
	#	'sh600776',#东方通信 
	#	'sh603000',#人民网 
		'sh600000',#浦发银行 
		'sh600085',#同仁堂 
		'sh601009',#南京银行
		'sz002186',#全聚德
		'sz002425' #凯撒文化
    ]
    for stock in stocks:
        StockInfo.GetStockInfo(stock)

    print(x)

然后执行命令


python3 ~/python/gupiao.py

得到显示结果:

当然这里读取只是当前的股价,不会实时变化的,如果需要动态监视股价变化,可以配合 watch 命令,例如:


watch -n 1 python3 ~/python/gupiao.py

编程笔记 » linux通过python监控股票股价

赞同 (36) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽