ボートレース公式サイトから情報を取得するスクレイピング

#2021/07/07
#環境:OS:Mac, 言語python, anaconda, 作業をするときはanaconda jupterのエディタよりMS Codeのほうがやりやすい。
#boatRaceCompuYosou.ipynbで使用
”’
・仕様
ボートレース公式https://www.boatrace.jp/
から「本日の払戻金一覧」のところを
クリックして、本日開催の場の開催時間をクリックする
出走表から結果までの情報を掲載したページが表示される
コンピュータ予想 https://www.boatrace.jp/owpc/pc/race/racelist?
その中のコンピュータ予想タブをクリック
「予想フォーカス」という項目に予想が表示される。
蒲郡  jcd=07 hd=20210707
1R rno=1

 

・目的:予想するレースの当選番号が出現するかもしれないレースを探す。

例えば6-全-全が出現するレースを探したい。その場合コンピュータ予想の予想フォーカスで予想されている番号に
6-全-全に該当しそうな予想が表示されていたら、そのレースを出力したい。
なお、コンピュータ予想は当然ながら、当たるとは限らず確率は低い
すべてのレースの予想を手動で探すのは面倒なので、自動で探したい。

 

・機能:該当のページから必要な情報を取得して、該当の情報(ここでは予想番号)を取得して

CSV出力する。

 

作業内容

1.「本日の払戻金一覧」7月7日の場合
https://www.boatrace.jp/owpc/pc/race/pay?hd=20210707
から開催される全レースのURLを取得
2.取得したURLを場ごとに取得。ループ
3.レースごとにループする
4「予想フォーカス」という項目のところの予想番号を取得する
5.予想する番号、例えば6,1の数字があればリストに追加する
6.CSV出力する。該当する予想がなければ出力しない。

 

※使用上の注意点

一度のスクレイピングとCSV出力だけに対応していて、前回作成したCSVを読み込んで処理を追記する仕様はない。
一度作成したファイルに、レース結果を追記変更することはしない。
ようするに、朝実行して、夜に実行しても朝作成したファイルを読み込んで処理をするものではない。
朝実行すると、朝のファイルを作成し、その後実行すればそのWebサイトの情報をCSVとして出力する。

 

>>なぜこのように書くかというと、レースが開催されるとレース結果が払戻金一覧ページに表示される。
レースが開催されていない場合は時刻が記載されていて、出力されるCSVの記載が異なるので、後日CSVの内容を
確認すると、「レース結果が後で追記されるのか?」と勘違いするかもしれない。
現時点では、払戻金一覧のレース前の状態で、コンピュータ予想を知りたいだけの機能である。
よってコンピュータ予想を取得してCSV出力して、その後の処理は何もしない。

 

ソースコード

クラスコード

CSVの出力例 6コースが予想されている番号を出力

その後、改良したクラスコードはこちら

ファイナルカットプロ  プレビュー カーソル スキミング

https://support.apple.com/ja-jp/guide/final-cut-pro/vere9ba3609/mac

ファイナルカットプロを使用して便利なのは、カーソルを移動させるとプレビューで再生表示されること
これはスキミングという機能だ
たまにこのスキミング機能が勝手に(おそらくカーソルを移動させる時に間違ってクリックしてスキミング機能を解除)解除されてることがある。

そのときに、どうやって戻すのか毎回苦労する。
グーグルで調べるにしてもその機能の名称を忘れているから名称で検索できない。

 

ワンピース99巻、麦わらのルフィ、 感想ネタバレ

(話が色々と進みすぎてまとめられないのでポイントだけ書く)

・サンジはブラック・マリアに捕まる
女に弱いサンジは、抵抗できず巨人のブラック・マリアに捕まってしまった。

・カイドウの娘ヤマトとおでんの息子モモの助は無事
ヤマトとエースが知り合いというエピソードが語られる

・四皇二人と新世代の戦い
カイドウとビッグマムの二人と、新世代の海賊、ルフィ、ユースタス・キッド、トラファルガー・ローたちの戦いが始まった。
一方的な戦いかと思いきや五分の戦い。

・終わり
赤鞘の侍たちは傷つき、宝物殿で休息をとっていた。
しかし敵に居場所を突き止められた。

ここで終わり
次回100巻へ

バッテリー膨張は危険、MacBookPro(2012モデル)のバッテリーの交換を自分でやってみた

MacBookPro(2012モデル)のバッテリーが膨張してキーボードが昨年くらいから膨らんできた。
長期間(8年以上)使用によって、バッテリーが劣化して内部に気体が発生して膨張しているようだ。
このまま使用するのは、まずいのでバッテリーの交換をした。

アップルの修理センターに連絡すべきだろうが、修理代が1万〜2万円ほどかかるようだ。
またおそらく修理に2,3週間かかるかもしれない。
発送準備でダンボール梱包材など準備してから発送となると、その間使用できないというのも少し困る。
そこで、アマゾンで交換用バッテリーを買って自分で交換してみた
なお推奨されていない。
失敗して使えなくても諦める覚悟を持っている。
あくまでも最後の手段の参考程度に、、

・症状
側面の部分に隙間が発生
キーボードが膨らんでいて、液晶上面を閉じても締まりきらない。今の時点で電源をつないで使用するにおいて問題はないが、バッテリーがある前面の筐体に隙間が見えるのが心配。

・原因
バッテリーの劣化と推測される。
バッテリーを長期間使用したことによるセル、電極板等の劣化によって正常時には発生しない気体が発生したと思われる。
気体が発生してバッテリー内にたまり内部から外側へ膨張して、筐体を押し上げてキーボードが膨らんでいる。

・対応
バッテリーの交換
購入先:アマゾンで検索
WorldPlus Apple MacBook Pro 15インチ A1382 A1286 交換バッテリー Early Late 2011 / Mid 2012
費用:約6000円
自己責任

・作業
ドライバーは購入したバッテリーに付属されているのでそのドライバーを使った。
ネジは、筐体が膨張していて固くなっていた。
バッテリーの固定ネジは3つで、右端のネジはバッテリーのシールで隠れているので気づきにくかった。
ネジ部分に該当するシールを少しめくるとネジの頭が見える。ここに気づかないと力づくでバッテリを抜き取ろうと考えるので注意する。ネジさえ外せば、バッテリーは軽く引き出すことができた。
なおケーブルが接続されているので、交換時に外す。

作業時間は約30分ほど。
要領がわかれば15分、20分あれば終わる。

電源ケーブルを繋いで、無事OSが起動してバッテリ容量が確認できた(約50%くらい)。あとは充電すればよいはず。

今日のエラー、Python,JupyterLab「ChromeDriver only supports」

環境MacOS,Python,Chrome,JupyterLab、Mysql

症状:JupyterLab上でPythonを実行したらエラーが表示

エラー「

原因:Chromeドライバーのバージョンが異なる。

対応:ドライバーを最新に更新する 最新のバージョンを入れるpipとBrew

ターミナルでバージョンを確認するバージョンをチェックする たぶん古いものが入っている
chromedriver –version

https://sites.google.com/a/chromium.org/chromedriver/downloads
にアクセスして最新の番号を取得する。以下の==の右の方にバージョン番号を入れる。そしてMacのターミナルに以下を実行する

pip install chromedriver-binary==91.0.4472.101
brew reinstall chromedriver
#再度

chromedriver –versionを実行してダイアログエラーが表示された、セキュリティとプライバシーで許可する

Google Colaboratory python df.head 出力されない printで囲め

こんな感じでGoogle Colaboratoryでpythonを実行してheadの中身が表示されなかった。Colabでは単にprintで囲めばよいだけだった。

誤り
dflist=[6050,
3546
]
for list in dflist:
nlist=str(list)+’.T’
df=data.DataReader(nlist,’yahoo’,start,end)
df.head(2)
正しくは
dflist=[]
#1
dflist=[6050,
3546
]
for list in dflist:
nlist=str(list)+’.T’
df=data.DataReader(nlist,’yahoo’,start,end)
print(df.head(2))

MarketSpeed 自動ログイン Windows10 VBA

環境;Windows10,VBA
WindowsのMarketSpeedを便利にする。
スクリプト実行でログインまでを自動処理
いちいちパスワードを入力する手間を省く。
あくまでも利用者が限定されている前提。

Macの場合はAutomatorを使った Macはこちら

詳しくは参考サイトにて
なおスクリプトの実行の際は
システム環境設定のセキュリティで、許可が必要

<スクリプト例>IDはMarketSpeed側に設定済。パスワードのみ入力
テキストファイルの拡張子をvbsにする。そしてそのファイルをダブルクリックすれば処理が始まる。
注意点
SJISで保存すること
アプリの絶対パスを確認する

 

参考

【Automator】アプリを起動してパスワードを自動入力する
https://kinopy-techhack.hateblo.jp/entry/180308

システム環境設定のセキュリティで、許可
https://www.dev-dev.net/entry/2019/08/25/091633

以下の内容をテキスト化して拡張子をVBAにする

 

MarketSpeed 自動ログイン Mac Automator

環境;Mac Big Sur,Automator (LaunchPadの「その他」)

MacのMarketSpeedを便利にする。

スクリプト実行でログインまでを自動処理

いちいちパスワードを入力する手間を省く。

あくまでも利用者が限定されている前提。

AutomatorはLaunchPadの「その他」の中にある。

新規スクリプトは新規からアプリケーションを選択する。

詳しくは参考サイトにて

なおスクリプトの実行の際は

システム環境設定のセキュリティで、許可が必要

<スクリプト例>IDはMarketSpeed側に設定済。パスワードのみ入力

 

参考

【Automator】アプリを起動してパスワードを自動入力する

https://kinopy-techhack.hateblo.jp/entry/180308

システム環境設定のセキュリティで、許可

https://www.dev-dev.net/entry/2019/08/25/091633

株価チェックEXCELマクロ、安値高値

株価をチェックして、安値高値でサウンドを再生

ちなみにヤフーファイナンスでも安値、高値に達したらメールで知らせてくれるサービスは存在するが、メールを見ないといけないし、複数の銘柄をチェックする場合は面倒になってくる。エクセルシートを見ながら、再生音で安値、高値をチェックできたら便利と思った。

エクセルを複数起動したい場合は、Windowキー+Rファイルを指定して起動で[excel /x]と入力して起動させて、エクセルブックを開けばよい。

仕様
楽天証券、マーケットスピード、RSS.exeが必要。Windowsのみ。
VBAによるループ処理で、現在値と安値、高値を比較します。
DoEvntsでイベントを受け付けます。
安値、高値になるとサウンドが1回再生されます。達成チェック列(H2以降)の文字を消すと再度再生します。サウンドファイルは個別に用意をする必要があります。
コードを入力後は銘柄ボタンをクリックしないと株価を取得しません。

参考にしたサイト

https://dp-invest.hateblo.jp/entry/2020/11/09/192427

使い方

(1)コードを入力して銘柄ボタンをクリックすると銘柄名と株価を取得します。
(2)安値と高値を入力します。省略可能。
(3)チェック開始ボタンで比較実行
(4)終了ボタンで処理を停止

 

python スクレイピング、BeautifulSoupライブラリ

#株探先物オプションのスクレイピング。取得した文字列をコピペしてTEXTにして、
#CSVに出力してMysqlにインサートするコード
#URLと日付と月限は手動で毎回入力する必要がある。

#以前はファイル作成まで手動で作業していた。
#WEBページを開き
#先物オプションの出来高データを取得して
#テキストファイルにする
#所定のフォルダにコピー、移動する
#個人用クラスメソッドを使う。

いままでWebdriverライブラリを使用していたが、空白部分が自動で削除されてしまった。
削除してほしくなかったので、BeautifulSoupライブラリを使用した。こちらのほうはクロムは起動しないし純粋にhtmlの文字を空白を含めて取得してくれた。
以下は今回作ったコードの一部。class cGetOption()
なおdef returnDriver(self,lurl)はwebdriverを使用したもので実際には採用しなかった。
株探の先物オプションのURLを取得して
そのページの文字列を取得。このとき、ある文字列Aと文字列Bの間の文字を取得(findFirstStrのところ)
そしてタプルで、文字列とファイル名文字列を出力する

https://github.com/maseda1030/yahoofinance_python.git