【实用工具】搭建一个可转债打新提醒小助手

年末了,突然发现今年错过了无数次打新债的机会,经常想起来时,发现已经下午四点休市。于是想到是否可以做一个小助手来自动帮我看新债信息,如果有,直接给我发微信提醒。

1. 可转债接口

首先,需要通过一个稳定接口获取可转债信息,查阅资料,发现同花顺提供了一个数据接口,链接为:http://data.hexin.cn/ipo/bond/cate/info/

格式化数据如下:
在这里插入图片描述
其中,比较关键的信息为sgDate,该日期表明债券的发行日。同时,该接口还提供了今日日期today,这方便了在之后程序中,无需从系统时间上再次获取今日日期。

2. 筛选今日发行新债

有了该接口之后,便可以写个简单程序筛选今日发行的新债,这里判定一下债券发行日等于今日日期,即将其筛选返回出来。

import requests

request_params = {"headers": {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"},
    "timeout": 10}
    
def get_today_bonds():
    r = requests.get("http://data.hexin.cn/ipo/bond/cate/info/", **request_params)
    for bond in r.json():
        if bond['today'] == bond['sgDate']:
            text = f"""今日打新: {bond['zqName']} 发行量{bond['issue']}亿"""
            return text
    return None
    
if __name__ == '__main__':
   news = get_today_bonds()
   print(news)

3. 微信信息推送

之前看到类似博文采用pushplus进行信息推送,但该平台目前已经停止运营。因此,本文采用WxPusher作为推送工具。该工具开源地址为:https://github.com/wxpusher/wxpusher-client,里面有适配go、java、php、python的示例程序,并且对每日的免费调用量为1000次,足够使用。

这里用python进行开发,首先需要安装wxpusher

pip install -U wxpusher

之后在WxPusher消息推送平台公众号中的菜单栏获取自己的UID。

在这里插入图片描述

接着在wxpusher后台管理界面(地址:https://wxpusher.zjiecode.com/admin/main/wxuser/list)里面创建一个应用。

创建完应用后,会自动生成一个只出现一次的应用token。

在这里插入图片描述

在应用管理下关注应用菜单中,扫码关注该应用。

在这里插入图片描述
最后,修改一下上一节的程序,得到消息之后,将消息通过发送接口发送即可,下面需要自行替换自己前面的用户uid和应用的token。

import requests
from wxpusher import WxPusher

request_params = {"headers": {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"},
    "timeout": 10}

def get_today_bonds():
    r = requests.get("http://data.hexin.cn/ipo/bond/cate/info/", **request_params)
    for bond in r.json():
        # bond['today'] = "2024-12-25"
        if bond['today'] == bond['sgDate']:
            text = f"""今日打新: {bond['zqName']} 发行量{bond['issue']}亿"""
            return text
    return None


if __name__ == '__main__':
    news = get_today_bonds()
    WxPusher.send_message(news,
                          uids=['用户uid'],
                          topic_ids=['1'],
                          token='应用token')

4. 定时触发设置

有了该程序,让其一直不间断运行并不合适,因为一天只需要查询一次即可。首先想到的是将其挂载到腾讯云的函数服务,但发现现在腾讯云的触发器也将停止服务。

在这里插入图片描述
因此,不如将其直接放到本机上设置定时任务。

首先用pyinstaller将其打包成一个exe程序:

pyinstaller -F bond_assistant.py

之后打开windows自带的任务计划程序

在这里插入图片描述
右键->创建基本任务

在这里插入图片描述
这里设置每日11:00触发一次

在这里插入图片描述
链接到打包好的脚本。

在这里插入图片描述
至此,完成助手配置。

5. Linux服务器上设置

在本机上部署一段时间后,发现有时候不稳定,因为实验室总是莫名断网。。于是想把它放在更稳定的云服务器上。

首先在云服务器上,可以同样用pyinstaller打包成可执行文件:

 pyinstaller --onefile bond_assistant.py

在这里插入图片描述

crontab设置定时任务,执行:

crontab -e

输入,设置每天11点运行:

0 11 * * * /root/code/tips/dist/bond_assistant

保存退出。

查看当前设定任务:

crontab -l

完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zstar-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值