Python Selenium Web 自動操作

Selenium CSV ダウンロ-ド-2 ファイル作成

ここまでで、Selenium CSV ダウンロード-2 の準備が完了しました。
引き続き、Selenium で 米ドルの毎日のレ-トの CSV をダウンロードするファイルを作成していきます。

ライブラリ取り込み

それでは、マネパから CSV ファイルを自動ダウンロードする
Python ファイル sc_sele_mane.py
を作成します。
取り込む必要があるライブラリは10個です。

  from selenium import webdriver
  from selenium.webdriver import Chrome, ChromeOptions, Remote
  from selenium.webdriver.common.keys import Keys
  import time
  # 待機に必要
  from selenium.webdriver.support.select import Select
  import datetime
  # 日数計算に必要
  import os
  from dotenv import load_dotenv
  # 認証情報を環境変数から取得するため

認証情報環境変数から取得

先程準備した .env ファイル のなかの環境変数から認証情報を取得します。

load_dotenv()
# 認証の情報は環境変数から取得
MANEPA_ID = os.environ['MANEPA_ID']
MANEPA_PA = os.environ['MANEPA_PA']
# print(MANEPA_ID)
# print(MANEPA_PA)


デ-タ取得期間を決定

ここでは最新の 100日間分のデ-タを取得することにします。
strftime() で日付、時間から文字列への変換もしておきます。
strftime の書式化コードは以下のようになります。
いずれも 0 埋め10進数表記が実行されます。
%d : 月中の日にち
%m : 月
%Y : 西暦4桁

now = datetime.datetime.now()
# 100日 減算
now10 = now - datetime.timedelta(days=100)
now10str = now10.strftime('%Y%m%d')
print(now10str)

例えば100日前の日付が 2021/2/1日ならば
20210201
のように表示されます。

オプション設定

オプションを設定していきます。
基本的には ChromeOptions を流用します。
options = ChromeOptions()
次に prefs オプションでデフォルトのダウンロードディレクトリを変更します。

  options.add_experimental_option("prefs", {
   "download.default_directory": "/home/yamada/public_html/download"
  })

Chrome WebDriver オブジェクト作成

Chrome の WebDriver オブジェクトを作成します。
driver = Chrome(options=options)
time.sleep(3)
少し待ってください。
そして、マネパ Login 画面を開きます。
2022/1/11日追記
2021/10月、Virtual Ubuntu で動作していた Selenium Web 自動操作が急に動かなくなりました。
WebDriver オブジェクト作成がうまくできなくなりました。
Selenium3 が Selenium4 にアップデ-トされたことが原因だったようです。
対応策については
Selenium Web 自動操作動作停止 で解説しています。
ご覧ください。


  driver.get('https://www.moneypartners.co.jp/login/')

タイトルに'マネーパートナーズ'が含まれていることを確認します。
assert 'マネーパートナーズ' in driver.title

ID,Password 入力

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)

ログイン完了

ここまででマネーパートナーズ会員専用サイトにログインできましたので、 パートナーズFX - チャート足情報サイトに移動します。

  driver.get('https://account.moneypartners.co.jp/retail/pfx_download_chart.do')

次に、日付欄にダウンロ-ドしたいデ-タの開始日 now10str を入力します。
開始日入力欄は
fr_date = driver.find_element_by_id('dateFrom')
で見つけることができます。
ここには現在の日付があらかじめ入力されていますのでこれを一旦選択し削除します。
fr_date.send_keys(Keys.CONTROL, "a")
fr_date.send_keys(Keys.DELETE)
そして開始日を入力します。
fr_date.send_keys(now10str)
そして足種欄をさがし、7番目にある日足を選択します。
tp_chat = driver.find_element_by_id('chartType')
select = Select(tp_chat)
select.select_by_value('7')

送信ボタンをクリック

後はタイミングをとりながら送信ボタンをクリックしログアウトし、ブラウザーを終了します。

  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) # 秒
  driver.quit() # ブラウザーを終了する。

ここまでで、マネーパートナーズ会員専用サイトにログインして、 パートナーズ FX-チャート足情報サイトから米ドル日足情報をダウンロ-ドするファイルが完成しました。
引き続きファイル内容をまとめて表示します。


  • Selenium CSV ダウンロ-ド-2 ファイルまとめ に進む
  • Selenium で CSV ファイルダウンロード-その2 に戻る
  • Selenium csv ファイルダウンロード Chromium 画面なし に戻る
  • Selenium で CSV ファイルダウンロード に戻る
  • Selenium PDF ファイルダウンロード Chromium 画面なし に戻る
  • Selenium で PDF ファイルダウンロード に戻る
  • Selenium Google 検索ファイル動作確認 に戻る
  • Selenium で Google 検索開始 に戻る
  • Python Selenium Web 自動操作概要 に戻る
  • 70VPS に戻る