【Pythonコード】Webスクレイピングで高配当株 スクリーニング自動化ツールを作成してみた②
どうも、こじまるです。
今回は下記の記事の続編になります。
0.前回のおさらい
以前の記事で、スクリーニング済みの高配当株情報を含むExcelファイルをフォルダに配置できるようにしました。しかしながら、平日の特定の時間帯にツールが自動で動作する要件を満たせていないため、続編として対応を行いました。また、スマートフォンでも高配当株情報を見たいので、スマートフォンに情報を配信できる要件を追加しました。
要件定義
前回の記事で下記のようにスクリーニングツールの要件を定義しました。今回は要件1と新たに追加した要件3を満たすようにします。
スクリーニングツールの要件定義
要件1. 平日の特定の時間帯にツールが自動で動作すること。
要件2. 東証一部上場の株式情報を取得すること。
要件3. スマートフォンに高配当株情報を配信できるようにすること。(New)
システムの流れ
要件1、要件3を満たすために、下記のような流れで処理を実行させることにします。
システムの流れ
1. スクリーニングスクリプトの定期実行
2. スクリーニング結果のアップロード
1.スクリーニングスクリプトの定期実行
私はWindowsのパソコンとUbuntuのサーバを所有しています。Windowsのパソコンは常に起動しているわけではないため、今回はUbuntuのサーバを使って自動実行を行います。
Ubuntuの自動実行設定Ubuntuのタスクを自動実行するために、cronを使用します。下記コマンドを実行すると、Vimを起動します。
$crontab -e
平日の17:00に自動実行するように設定します。
$crontab -l
LANG=ja_JP.UTF-8
0 17 * * 1-6 cd /home/{user}/finance;/usr/bin/python3 /home/{user}/finance/createStockMap.py
cronの設定は下記を参考にしました。
2.スクリーニング結果のアップロード
Slack APIの設定
スマートフォンに高配当株情報を配信するために、Slack APIを使用します。詳細な手順については説明を割愛しますので、参考サイトをご確認ください。
設定手順
1. Slack APIより、アプリを作成
2. スコープにファイル書き込みのため files:write の設定
3. Slackにアプリをインストール
4. Tokenをコピー
5. 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個の情報を表示します。
ソースコード
ソースコードはこちらに配置しています。
結果
スマートフォンのSlackでファイルを受け取れることができました。
Excelアプリでファイルを表示した結果はこちらになります。1画面ですべての情報が表示できなかったため、2つの画像に分けています。
3.まとめ
スクリーニングした高配当株情報をスマートフォンに自動配信できるようになりました。情報の収集にSlackを使用してみましたが、結構便利なものですね。ソースコードも公開していますので、ぜひ使用してみてください。
この記事が気に入ったらサポートをしてみませんか?