python实时获取指定基金数据发送钉钉

脚本的由来

  • 写这个脚本主要原因是在平时的工作当中,需要处理工作问题很忙时,没时间看基金情况,通过设置涨幅度值,从而快速确认是否需要卖出或者买入基金

运行脚本所需环境

  • 需要安装dingtalkchatbot、requests 使用pip安装即可
  • 需要钉钉群组种创建机器人用于发送信息
  • 在写个定时任务周一到周五14:30执行一次 30 14 * * 1,2,3,4,5 python3 /jijin/demo.py

脚本详情

#!/usr/bin/python3
#coding:utf8
"""
定时推送购买基金涨幅情况,来却认是否赎购基金
基金实时信息:http://fundgz.1234567.com.cn/js/001186.js?rt=1463558676006
新浪基金实时信息: http://hq.sinajs.cn/list=s_sh000905
钉钉告警地址:https://oapi.dingtalk.com/robot/send?access_token=acf237191e252cb24ca33d92dde7f5e45b37b82bb771b2aeb5d5d1ebf8addd222
Data:2020年3月20日10:00:56
编写人: 赵路

1、新增大盘指数告警
"""
import requests,json,time
from dingtalkchatbot.chatbot import DingtalkChatbot

#获取时间戳
def GetTime():
    t = time.time()
    Timestamp = round(t * 1000)
    # print(Timestamp)
    return Timestamp

#传入大盘指数新浪接口
def MarketIndex(SharesID):
    MarketList = []
    Headers = {'content-type':'application/json','User-Agent': 'Apache-HttpClient/4.5.2 (Java/1.8.0_102)'}
    sinajs = "http://hq.sinajs.cn/list=s_" + str(SharesID)
    Msg = requests.get(sinajs, headers=Headers)
    SharesMsg =  Msg.text
    # print(SharesMsg)
    if SharesID in SharesMsg:
        GetSharesName = SharesMsg.split(",")[0].split("=")[1]
        Gain = SharesMsg.split(",")[3]
        GetMarketMsg = "大盘指数名称: " + GetSharesName  + " 涨跌幅: " +  str(Gain)
    return GetMarketMsg


#传入基金代码和当天时间戳获取当前数据
def GetFundData(fundId,GetTimestamp):
    Headers = {'content-type':'application/json','User-Agent': 'Apache-HttpClient/4.5.2 (Java/1.8.0_102)'}
    TTurl = "http://fundgz.1234567.com.cn/js/" + str(fundId) +  ".js?rt=" + str(GetTimestamp)
    r = requests.get(TTurl, headers=Headers)
    GetMsg = r.text
    # print(GetMsg)
    if "fundcode" in GetMsg:
        FundID = GetMsg.split(",")[0].split(":")[1]
        FundName = GetMsg.split(",")[1].split(":")[1]
        Gain = GetMsg.split(",")[5].split(":")[1]
        # print(GetMsg.split(",")[6].split("}")[0])
        currentTime = GetMsg.split(",")[6].split("}")[0].split("\"gztime\":")[1]
        # GetData = "基金名称:"+ FundName + "ID" + FundID + "涨跌幅:" + Gain + "当前时间:" + currentTime
        # GetData =  FundName + " " + FundID + " " + Gain
        # GetData = "基金名称:"+ FundName + "涨跌幅:" + Gain + "当前时间:" + currentTime
        GetData = "基金名称:"+ FundName + " "+ "涨跌幅:" + Gain + " "+ "当前时间:" + currentTime
    return GetData

#判断涨幅度正负1.5个点的输出基金
def ExeIncreaseDegree(Fundmsg,Differencevalue,Increment):
    if Fundmsg:
        IncreaseDegree = float(Fundmsg.split(":")[2].split("当前时间")[0].replace("\"",''))
        if  IncreaseDegree  > Increment  or IncreaseDegree < Differencevalue:
            # DifferencevalueincrementList.append(Fundmsg)
            return Fundmsg
    # print(DifferencevalueincrementList)


#钉钉告警通知
def SendMsg(Title,Msg):
    # WebHook地址
    webhook = "https://oapi.dingtalk.com/robot/send?access_token=acf237191e252cb24ca33d92dde71f5e45b37b8bb771b2aeb5d5d1ebf8addd222"
    # 初始化机器人小丁
    xiaoCCOD = DingtalkChatbot(webhook)
    # Text消息@所有人,添加CCOD关键字否则无法告警
    xiaoCCOD.send_text(msg="CCOD---> " + Title + "\n" + Msg, is_at_all=True)


if __name__ ==  '__main__':
    #持有基金ID
    #fundIdList = ["001631","501021"]
    fundIdList = ["001549","001594"]
    TitleList = ["每日基金涨跌详情","当日基金涨跌正负1.5详情","大盘指数详情"]
    #大盘指数列表
    SharesIDList = ["sh000001","sh000300","sh000905"]
    GetSharesMsg = []
    GetTimestamp = GetTime()
    MsgList = []
    DifferencevalueincrementList = []
    Differencevalue = -1.5
    Increment = 1.5

    #循环大盘ID发送告警
    for SharesID in SharesIDList:
        GetMarketIndexMsg =  MarketIndex(SharesID)
        GetSharesMsg.append(GetMarketIndexMsg)
    SendSharesMsg  =  str(GetSharesMsg).split("[")[1].split("]")[0].replace("None, ", "").replace(",", "\n")
    SendMsg(TitleList[2], SendSharesMsg)

    #循环基金ID获取基金当前涨幅度
    for fundId in fundIdList:
        GetData = GetFundData(fundId,GetTimestamp)
        Fundmsg =  GetData
        DifferencevalueincrementList.append(ExeIncreaseDegree(Fundmsg,Differencevalue,Increment))
        MsgList.append(GetData)

    #正负情况大于1.5发送信息
    GetNewData = str(DifferencevalueincrementList).split("[")[1].split("]")[0].replace("None, ","").replace(",","\n")
    if None is not GetNewData:
        SendMsg(TitleList[1], GetNewData)

    #去重大于1.5的基金信息之后在发送信息
    DifferenceSet = [item for item in MsgList if item not in DifferencevalueincrementList]
    GetDifferencevalueincrement = str(DifferenceSet).split("[")[1].split("]")[0].replace("None, ","").replace('\"','').replace(", ","\n")
    SendMsg(TitleList[0], GetDifferencevalueincrement)




执行结果

  • 运行结果


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容