1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        我用 Python 寫了個(gè)基金漲跌通知助手

        共 1911字,需瀏覽 4分鐘

         ·

        2020-09-03 08:46

        ? ? 點(diǎn)擊上方?月小水長(zhǎng)?并?設(shè)為星標(biāo),第一時(shí)間接收干貨推送

        這是?月小水長(zhǎng)?的第?53?篇原創(chuàng)干貨
        2020 年,世界風(fēng)云變化,基金也是。
        我們都知道股票或者債券,它們都屬于直接投資,而基金是間接投資,我們把錢投在基金里,相當(dāng)于把這些錢交給專業(yè)基金公司的專業(yè)經(jīng)理人,這些經(jīng)理人再去投資股票或者債券。理論上比我們自己直接投資更靠譜些,但是天總是有不測(cè)風(fēng)云。

        這篇文章不討論基金策略,而是討論查看基金漲跌的策略,相信很多人看基金都是通過手機(jī),但是基金的漲跌扣人心弦,隔幾分鐘我就忍不住打開手機(jī)查看基金實(shí)時(shí)凈值,在某些公司,這樣是會(huì)被扣工資的。
        于是乎,花了一晚上寫了個(gè)基金提示小助手,并部署上了阿里云服務(wù)器,關(guān)注的基金超過自定義的漲跌警戒線自動(dòng)發(fā)郵件提示,其實(shí)支付寶微信也有提示,不過都是手機(jī)狀態(tài)欄提示,屬于移動(dòng)互聯(lián)場(chǎng)景,而在 PC 辦公場(chǎng)景,顯然郵件更為方便些,這下再也不要在上班時(shí)間頻繁打開支付寶微信查看基金漲跌了。同時(shí),每個(gè)工作日 22:35 定時(shí)推送當(dāng)天關(guān)注的基金日?qǐng)?bào)到郵箱,下班回家路上,基金情況一目了然。

        日?qǐng)?bào)通知郵件

        由于部署上了服務(wù)器,所以這個(gè)功能是全天候?qū)崟r(shí)在線的,目前只有我一個(gè)用戶,功能是上周日晚上線的,周一我自己內(nèi)測(cè)了一天,解決了一些小 BUG,日趨穩(wěn)定;作為福利,我將該功能向所有讀者開放,怎么使用,請(qǐng)看文章末尾,不過在此之前不妨看看如何實(shí)現(xiàn)的。
        首先解決的是數(shù)據(jù)獲取的問題,怎么獲取特定基金的實(shí)時(shí)數(shù)據(jù)呢,可以去專門的基金網(wǎng)站上抓取,東方財(cái)富或者天天基金都行,這里就是涉及到 Python 爬蟲的問題,這個(gè)爬蟲不算難,用瀏覽器檢查工具就能調(diào)試出來,然后使用 Requests 庫(kù)模擬 User-Agent 用戶行為,根據(jù)基金代碼查詢基金信息即可。
        然后問題是怎么發(fā)送郵件和郵件的內(nèi)容的問題,如下圖:

        漲跌通知郵件

        對(duì)于漲跌通知郵件,發(fā)送者只有一個(gè),接收者就是用戶郵箱,每個(gè)郵箱維護(hù)一個(gè)關(guān)注的基金列表,每個(gè)基金分別設(shè)置漲跌預(yù)警百分比;遍歷所有郵箱,每一個(gè)郵箱遍歷所有基金,根據(jù)基金代碼爬取實(shí)時(shí)基金凈值,然后比對(duì)預(yù)警線,超過預(yù)警線就向該郵箱發(fā)送通知郵件。什么時(shí)候發(fā),在基金的工作日(周一到周五不包括節(jié)假日),而且在工作日的交易時(shí)間(9:30-11:30、13:00-15:00)?這個(gè)時(shí)間段內(nèi)發(fā)通知。
        至于基金日?qǐng)?bào)郵件,則需要用到定時(shí)器相關(guān)的技術(shù),Python 中有一個(gè)很好用的定時(shí)任務(wù)模塊 apscheduler,只需要把這個(gè)定時(shí)發(fā)送基金日?qǐng)?bào)的函數(shù)設(shè)置成一個(gè)后臺(tái)任務(wù)即可。
        發(fā)送郵件使用的是 smtplib 模塊,郵件服務(wù) SMTP 常用的是 25 端口,不過阿里云服務(wù)器為了安全起見,封禁了該端口,可以申請(qǐng)開啟但是不建議開啟,我們只能另辟道理使用 SMTP_SSL,端口號(hào)是 465,https = http + ssl,周知 https 比 http 更安全,由取代反應(yīng)可知 SMTP_SSL 比 SMTP 更安全。
        最后的問題就是如何上服務(wù)器的問題,首先服務(wù)器可能運(yùn)行多個(gè)應(yīng)用,虛擬環(huán)境是少不了要配置的,然后怎么使程序跑起來呢,python xxx.py 這樣的做法只要你一關(guān)閉遠(yuǎn)程連接,程序就停了,盡管你的服務(wù)器沒有關(guān)機(jī),可類比成在本機(jī)的命令行下輸入 python xxx.py,只有關(guān)閉命令行,程序就終止了。我開始想把它配置成后臺(tái)任務(wù),使用 nohup 命令,這樣只要不關(guān)機(jī),程序就一直運(yùn)行了,但是每次開機(jī)都要輸這個(gè)命令才能啟動(dòng)程序,以及如果程序進(jìn)程掛掉了不會(huì)重啟,所以必須得用 supervisor 給該程序設(shè)置一個(gè)守護(hù)進(jìn)程,并設(shè)置為開機(jī)自啟,錯(cuò)誤重啟等,這樣就可以高枕無憂了。
        最后講的是怎么申請(qǐng)使用這個(gè)通知功能,很簡(jiǎn)單,不用轉(zhuǎn)發(fā),沒有套路,只需要在本文按照以下格式留言即可,關(guān)注者優(yōu)先,走過路過不要錯(cuò)過~
        [email protected]
        基金代碼1?該基金漲幅提示線?該基金跌幅提示線
        基金代碼2?該基金漲幅提示線?該基金跌幅提示線
        比如
        [email protected]
        008087?1?-1
        001102?2?-2
        意思是郵箱 [email protected] 關(guān)注了兩支基金,第一支基金代碼 008087,當(dāng)漲幅超過 1% 或者 跌幅超過 -1% 時(shí)都會(huì)發(fā)送通知郵件,第二只基金 001102 漲跌幅絕對(duì)值超過 2% 時(shí)發(fā)送通知郵件。
        完結(jié),撒花~,歡迎留言~
        瀏覽 45
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产精品偷窥熟女精品视 | 逼免费视频 | 黄色小电影网址 | 国产精选久久 | 国产精品嫩草99a | 美女的让男人桶到爽网站 | 天天日天天操比 | 羞羞影院男女午夜爽爽在线 | 黄色电影视 | 我给你日b小说 |