我用 Python 寫了個基金漲跌通知助手

    點擊上方 月小水長 並 設爲星標,第一時間接收乾貨推送

這是 月小水長 的第  53  篇原創乾貨
2020 年,世界風雲變化,基金也是。
咱們都知道股票或者債券,它們都屬於直接投資,而 基金是間接投資 ,咱們把錢投在基金裏,至關於把這些錢交給專業基金公司的專業經理人,這些經理人再去投資股票或者債券。理論上比咱們本身直接投資更靠譜些,可是天老是有不測風雲。

這篇文章不討論基金策略,而是討論查看基金漲跌的策略,相信不少人看基金都是經過手機,可是基金的漲跌扣人心絃,隔幾分鐘我就忍不住打開手機查看基金實時淨值,在某些公司,這樣是會被扣工資的。
因而乎,花了一夜寫了個基金提示小助手,並部署上了阿里雲服務器, 關注的基金超過自定義的漲跌警惕線自動發郵件提示 ,其實支付寶微信也有提示,不過都是手機狀態欄提示,屬於移動互聯場景,而在 PC 辦公場景,顯然郵件更爲方便些,這下不再要在上班時間頻繁打開支付寶微信查看基金漲跌了。同時, 每一個工做日 22:35 定時推送當天關注的基金日報到郵箱 ,下班回家路上,基金狀況一目瞭然。

日報通知郵件python

因爲部署上了服務器,因此這個功能是全天候實時在線的,目前只有我一個用戶,功能是上週日晚上線的,週一我本身內測了一天,解決了一些小 BUG,日趨穩定;做爲福利,我將 該功能向全部讀者開放,怎麼使用,請看文章末尾 ,不過在此以前不妨看看如何實現的。
首先解決的是 數據獲取 的問題,怎麼獲取特定基金的實時數據呢,能夠去專門的基金網站上抓取,東方財富或者每天基金都行,這裏就是涉及到 Python 爬蟲的問題,這個爬蟲不算難,用瀏覽器檢查工具就能調試出來,而後使用 Requests 庫模擬 User-Agent 用戶行爲,根據基金代碼查詢基金信息便可。
而後問題是怎麼發送郵件和郵件的內容的問題,以下圖:

漲跌通知郵件
web

對於漲跌通知郵件,發送者只有一個,接收者就是用戶郵箱, 每一個郵箱維護一個關注的基金列表,每一個基金分別設置漲跌預警百分比;遍歷全部郵箱,每個郵箱遍歷全部基金,根據基金代碼爬取實時基金淨值,而後比對預警線,超過預警線就向該郵箱發送通知郵件 。何時發,在基金的工做日( 週一到週五不包括節假日 ),並且在工做日的交易時間( 9:30-11:30、13:00-15:00 ) 這個時間段內發通知。
至於基金日報郵件,則須要用到定時器相關的技術,Python 中有一個很好用的 定時任務模塊 apscheduler ,只須要把這個定時發送基金日報的函數設置成一個後臺任務便可。
發送郵件使用的是 smtplib 模塊,郵件服務 SMTP 經常使用的是 25 端口,不過阿里雲服務器爲了安全起見,封禁了該端口,能夠申請開啓可是不建議開啓,咱們只能另闢道理使用 SMTP_SSL,端口號是 465,https = http + ssl,周知 https 比 http 更安全,由取代反應可知 SMTP_SSL 比 SMTP 更安全。
最後的問題就是如何上服務器的問題,首先服務器可能運行多個應用,虛擬環境是少不了要配置的,而後怎麼使程序跑起來呢, python xxx.py 這樣的作法只要你一關閉遠程鏈接,程序就停了 ,儘管你的服務器沒有關機,可類比成在本機的命令行下輸入 python xxx.py,只有關閉命令行,程序就終止了。我開始想把它配置成後臺任務,使用 nohup 命令,這樣只要不關機,程序就一直運行了,可是每次開機都要輸這個命令才能啓動程序,以及若是程序進程掛掉了不會重啓,因此必須得用 supervisor 給該程序設置一個守護進程,並設置爲 開機自啓,錯誤重啓 等,這樣就能夠高枕無憂了。
最後講的是怎麼申請使用這個通知功能,很簡單,不用轉發,沒有套路,只須要在本文 按照如下格式留言 便可,關注者優先,走過路過不要錯過~
    
xxxxxxx@yy.com
基金代碼1 該基金漲幅提示線 該基金跌幅提示線
基金代碼2 該基金漲幅提示線 該基金跌幅提示線
好比
    
jijinreceiver@qq.com
008087 1 -1
001102 2 -2
意思是郵箱 jijinreceiver@qq.com 關注了兩支基金,第一支基金代碼 008087,當漲幅超過 1% 或者 跌幅超過 -1% 時都會發送通知郵件,第二隻基金 001102 漲跌幅絕對值超過 2% 時發送通知郵件。
完結,撒花~,歡迎留言~

本文分享自微信公衆號 - 月小水長(inspurer)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。瀏覽器

相關文章
相關標籤/搜索