Slack APIで高配当株情報をスマートフォンに自動配信してみた
はじめに
どうも、こじまるです。
今回は『Webスクレイピングで高配当株 スクリーニング自動化ツールを作成した』の続編になります。
以前の記事で、スクリーニング済みの高配当株情報を含むExcelファイルをフォルダに配置できるようにしました。しかしながら、平日の特定の時間帯にツールが自動で動作する要件を満たせていないため、続編として対応を行いました。また、スマートフォンでも高配当株情報を見たいので、スマートフォンに情報を配信できるようにしました。
スクリーニングツールの作成
要件定義
前回の記事で下記のようにスクリーニングツールの要件を定義しました。今回は要件1と新たに追加した要件3を満たすようにします。
スクリーニングツールの要件定義
スクリーニングツールの自動実行
私はWindowsのパソコンとUbuntuのサーバを所有しています。Windowsのパソコンは常に起動しているわけではないため、今回はUbuntuのサーバを使って自動実行を行います。
Windowsパソコンでpythonスクリプトを自動実行する方法はこちらで説明していますので、参考にしてください。
cojimaru-chan.hatenablog.com
スマートフォンに高配当株情報の配信
Slack APIの設定
スマートフォンに高配当株情報を配信するために、Slack APIを使用します。詳細な手順については割愛しますので、参考サイトをご確認ください。
設定手順
- Slack APIより、アプリを作成
- スコープにファイル書き込みのため files:write の設定
- Slackにアプリをインストール
- Tokenをコピー
- Slackのチャンネルにアプリを追加
Slack APIの設定を行った後に、ソースコードを実行することでファイルをアップロードすることができました。
検証に使用したソースコードは下記になります。
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests api_token = '' # please enter your api_token channel = '' # please enter your channel class SlackManager: def __init__(self): self.api_token = api_token self.channel = channel def upload_file(self,file,file_name): files = {'file':open(file,'rb')} param = { 'token' : self.api_token, 'channels' : self.channel, 'filename' : file_name, 'initial_comment' : 'file upload', 'title' : 'dividend stocks' } res = requests.post(url="https://slack.com/api/files.upload", params=param, files=files) print(res.json()) if __name__ =='__main__': file_name = 'stock_210220_144325.xlsx' file_path = './' + file_name slack = SlackManager() slack.upload_file(file_path,file_name)
参考
https://qiita.com/yaju/items/2e1ab8a25b6e207bfbe6
https://www.whizz-tech.co.jp/5857/
スクリーニングツールの修正
前回作成したスクリーニングツールでは、1行(1つの銘柄)に20個の情報を表示しています。スマートフォンでは情報が多すぎると見づらいので、14個の情報を表示します。
ソースコード
ソースコードはこちらに配置しています。
github.com