経済指標カレンダーの取得
を参考にみんかぶからスクレイピング
でーたを綺麗にするために
列名を主導で追加
必要の無い列、行を削除
が必要になる
しかし
import pandas as pd url = 'https://fx.minkabu.jp/indicators' #みんかぶFXの経済指標URLを取得 dfs = pd.read_html(url) #テーブルのオブジェクトを生成
を実行してもリストになってしまう
Pandasで超簡単!WEBスクレイピング(表・htmlのtable取得)
を参考に
read?html に
必要なライブラリ不足かと思い
pip install beautifulsoup4 lxml html5lib
でインストールしてみたが変わらない
を参考に
import pandas as pd url2 = 'https://en.wikipedia.org/wiki/Transistor_count'# 対象のwebページのurl dfs = pd.read_html(url2)# webページに複数のテーブルがある場合、リスト形式でdfsに格納されます
とすると
webページに複数のテーブルがあるとリストになってしまう
なので
import pandas as pd url = 'https://fx.minkabu.jp/indicators' #みんかぶFXの経済指標URLを取得 dfs = pd.read_html(url) #テーブルのオブジェクトを生成 dfs[0]
とすればテーブルとして表示できる
よくみたら出力するときに
dfs[0]
で指定していた….
とりあえずこれで当日の経済指標カレンダーは取得できそう
0からカウントされるので
0〜4までで1週間のカレンダー取得ができる
なお変動の pips については
米ドル/円やクロス円(ユーロ/円、ポンド/円など)の場合
1pip=0.01円(1銭)
10 pips=0.1円(10銭)
100 pips=1円(100銭)
米ドルストレート(ユーロ/ドル、ポンド/ドルなど)の場合
1pip=0.0001ドル(0.01セント)
10pip=0.001ドル(0.1セント)
100pip=0.01ドル(1セント)
となっている
これで
streamlit で表示できれば次にループ表示すれば週間カレンダーが表示できる
ので
mkdir fx_tool
で
作業ディレクトリを作成
使用するエディタは VS Code
cd fx_tool/ code ./
で作業ディレクトリに移動
vscode が起動する
main.py
を作成
久しぶりなのでほぼ忘れているので
Visual Studio Code キーボード ショートカット
をみながら操作
しかし途中でライブラリインストール済みでも import でエラー
このため
vscide import
で検索
VSCode で Python の import や from のエラーが消えない
を参考に
F1 を押す
Python: Select Interpreter を入力
使用する python を conda のものに設定
デフォルトの
Use default Python interpreter path
だとなぜか pandas のインポートができなかったけど
これで解決
from bs4 import BeautifulSoup import pandas as pd import streamlit as st
でライブラリインポート
アプリのタイトルは
st.title()
で追加
経済指標カレンダーは
サイドバーで表示したいので
st.sidebar.write()
で記述していく
st.title('FX tool') st.sidebar.write(""" # 経済指標カレンダー 今週の経済指標カレンダー """) url = 'https://fx.minkabu.jp/indicators' #みんかぶFXの経済指標URLを取得 dfs = pd.read_html(url) #テーブルのオブジェクトを生成 dfs[0] dfs1 = dfs[0].dropna(subset = [4]) #4番にNaNが入っている行はバグなので、削除 dfs2 = dfs1.drop(2,axis =1) #2番目の列を削除。axis = 1は列を削除するオプション dfs2.columns = ["発表時間", "経済指標", "前回変動幅(USD/JPY)","前回","予想","結果"]#列名を手動で追加。 #前処理終了 dfs2
st.sidebar.table(dfs2)
としてみたが
サイドバー表示だと見えにくいので本体の方にテーブル表示にする
なおサイドバーのwidth を変更する方法として
Change width of sidebar
にあるように
st.markdown
で設定も考えたが、使いにくいものになりそうなので別のレイアウトにすることに