Python で 豪ドル/円チャ-ト を探求
豪ドル/円 CSV 改造ファイルまとめ
ここまで sc_sele_mane.py を改造してきました。
改造した内容をまとめて表示します。
from selenium import webdriver
from selenium.webdriver import Chrome, ChromeOptions, Remote
from selenium.webdriver.common.keys import Keys
# 追加ボップアップ対応
from selenium.webdriver.common.alert import Alert
import time
from selenium.webdriver.support.select import Select
import datetime
import os
from dotenv import load_dotenv
load_dotenv()
# 認証の情報は環境変数から取得する。
MANEPA_ID = os.environ['MANEPA_ID']
MANEPA_PA = os.environ['MANEPA_PA']
# print(MANEPA_ID)
# print(MANEPA_PA)
now = datetime.datetime.now()
# 140日 減算
now10 = now - datetime.timedelta(days=140)
now10str = now10.strftime('%Y%m%d')
# print(now10str)
options = ChromeOptions()
# ヘッドレスモードを有効にする
# options.headless = True
# prefs オプションを設定、デフォルトのダウンロードディレクトリを変更
options.add_experimental_option("prefs", {
"download.default_directory": "/home/yamada/public_html/manep"
})
# ChromeのWebDriverオブジェクトを作成する。
driver = Chrome(options=options)
time.sleep(3) # 必須
# マネパ Login 画面を開く。
driver.get('https://www.moneypartners.co.jp/login/')
# タイトルに'マネーパートナーズ'が含まれていることを確認する。
assert 'マネーパートナーズ' in driver.title
# ID,Password を入力する。
id = driver.find_element_by_name('loginId')
id.send_keys(MANEPA_ID)
password = driver.find_element_by_name('password')
password.send_keys(MANEPA_PA)
time.sleep(1)
# ログインボタンをクリック
login_button = driver.find_element_by_id('loginBtn')
print("login_button 発見")
login_button.click()
time.sleep(1)
driver.get('https://account.moneypartners.co.jp/retail/pfx_download_chart.do')
fr_date = driver.find_element_by_id('dateFrom')
print("dateFrom 発見")
fr_date.send_keys(Keys.CONTROL, "a")
fr_date.send_keys(Keys.DELETE)
# 一旦値を選択してから消してそして入力する
# 140前の日付を入れる
fr_date.send_keys(now10str)
tp_chat = driver.find_element_by_id('chartType')
select = Select(tp_chat)
select.select_by_value('7')
# valueが"7"のoptionタグを選択状態にする
# 銘柄選択
commo = driver.find_element_by_id('commodity')
select = Select(commo)
select.select_by_value('3')
# valueが"3"のoptionタグを選択(豪ドル)状態にする
time.sleep(1)
# 送信ボタンをクリック
send_button = driver.find_element_by_id("outputChart")
send_button.click()
time.sleep(1) # 秒
logout_but = driver.find_element_by_id("logout")
logout_but.click()
time.sleep(3) # 秒
# 2行追加ポップアップ
Alert(driver).accept()
time.sleep(4) # 秒
driver.quit() # ブラウザーを終了する。
# ダウンロードディレクトリ、ファイル名変更
# フルパス指定
path = "/home/yasuhiro/public_html/manep/"
# ここには適当に mane_chart_go.csv をおいておくこと
files = os.listdir(path)
print(files)
# 取得できるのはパスの文字列のリスト。
# files[*] に取得した PFX_CHART_20210209160810.csv が入る
# files[*]='mane_chart_go.csv'
files0 = files[0]
if len(files[1]) > len(files[0]):
files0 = files[1]
path1 = path + files0
print(path1)
path2 = path + 'mane_chart_go.csv'
os.rename(path1, path2)
上記ファイルは動作確認のため TeraPad 等で作成したら、ファイル名を適当に
sc_sele_mane_go.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
豪ドル/円 CSV ダウンロ-ドファイル動作確認
豪ドル/円 CSV ダウンロ-ドファイル
sc_sele_mane_go.py
の動作確認をしていきます。
このファイルを動作させるには
Python Selenium Web 自動操作
ができることが大前提となります。
Selenium が動作するように、上記「自動操作」を読んで、Ubuntu に必要パッケ-ジ
Selenium
ChromeDriver
chromium-browser
をインスト-ルしてください。
インスト-ル済みの方はこれはパスします。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
yamada@ubuntu-20:~$ mkdir public_html/manep
新規ディレクトリができたら
:~$ touch public_html/manep/mane_chart_go.csv
で mane_chart_go.csv の空ファイルをあらかじめ作成します。
/home/yamada/public_html/manep/mane_chart_go.csv
が作成できました。
作成済みの方はこれはパスします。
次に、sc_sele_mane_go.py を実行します。
$ python3 public_html/sc_sele_mane_go.py
として確認します。
実行開始後 Chromium-browser(Chrome) 画面が Ubuntu ディスクトップに発生します。
「Chrome は自動テストソフトウェアによって制御されています」
と表示され、ブラウザが自動操作されていきます。
これにより意図した操作が実行されているか確認することができます。
csv ダウンロードが実行され、ブラウザが終了します。
次に、
yamada@ubuntu-20:~$ ls -l public_html/manep
でダウンロードしたファイル
/home/yamada/public_html/manep/mane_chart_go.csv
を確認します。
空ファイルが内容を持ったファイルに変更されて、
その内容が140日分の豪ドル/円の値動きになっていたら OK です。
これで、豪ドル/円 CSV ダウンロ-ドファイル動作確認の説明は終りです。
引き続き、豪ドル/円 CSV ダウンロ-ドファイルが動かないときの対処方法を説明していきます。