【Python金融データ】為替データ取得(くりっく365)

投資・ファイナンス

今回は為替分析を行うにあたって、必要なデータを収集、加工する方法を紹介していきます。
為替レートの価格データはPythonでも簡単に取得できますが、スワップデータについては長期のデータをなかなか取得する方法がないので、
今回はくりっく365から取得することにしました。
できればPythonでURLからCSVファイルを自動でダウンロードしたいところですが、Javascriptで操作が必要なので、Pythonの場合Seleniumを使う必要があります。
Seleniumでブラウザ操作を行ってもよいのですが、MicrosoftのPower Automateを使うともっと簡単にデータを取得できそうなので、今回はそちらを使います。

Power Automateのインストール

Windows10以上の環境でインストール可能です。
アップストアで「Power Automate」と検索するかこちらからインストールします。
インストール

新しいワークフローの追加

今回の取得データはチェックボックスをチェックして、期間を指定(最大1年)して、CSVダウンロードのボタンをクリックする必要があります。
データ画面
この流れをPower Automateに入力していきます。

左上の新しいフローをクリックします。
新しいフロー
適当にフロー名を入力して作成をクリックします。
フロー名
作成すると下記のようなフロー編集画面になります。
編集画面
一つ一つアクションを登録してもいいのですが、面倒なので、mainの下のスペース部分に以下のコードを貼り付けると自動でフローを入力できます。

WebAutomation.LaunchEdge.LaunchEdge Url: $'''https://www.tfx.co.jp/historical/fx/''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {
document.querySelectorAll(\"input[type=checkbox][id^=historicaldata-product-]\").forEach((e)=>e.checked=true) 
}'''
WebAutomation.SetCheckboxState.SetCheckboxStateNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['取得項目 \'ALL\''] State: WebAutomation.CheckboxState.Checked
WebAutomation.SelectRadioButton.SelectRadioButtonNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定from']
WebAutomation.SetDropDownListValue.SetDropDownListValueByIndexNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定from月'] OptionsIndeces: 2
WebAutomation.SetDropDownListValue.SetDropDownListValueByIndexNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定from日'] OptionsIndeces: 2
WebAutomation.SelectRadioButton.SelectRadioButtonNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定to']
WebAutomation.SetDropDownListValue.SetDropDownListValueByIndexNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定to月'] OptionsIndeces: 13
WebAutomation.SetDropDownListValue.SetDropDownListValueByIndexNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定to日'] OptionsIndeces: 32
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {
return document.querySelectorAll(\"#historicaldata-period-start-year>option\").length
}''' Result=> YearLen
LOOP LoopIndex FROM YearLen + 0 TO 2 STEP -1
    WebAutomation.SetDropDownListValue.SetDropDownListValueByIndexNoWait BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定from年'] OptionsIndeces: LoopIndex
    WebAutomation.SetDropDownListValue.SetDropDownListValueByIndex BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['期間指定to年'] OptionsIndeces: LoopIndex WaitForPageToLoadTimeout: 60
    WebAutomation.Click.Click BrowserInstance: Browser Control: appmask['Web Page \'https://www.tfx.co.jp/historical/fx/\'']['Anchor \'csvダウンロード\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0
    WAIT 3
END

# [ControlRepository][PowerAutomateDesktop]

{
  "ControlRepositorySymbols": [
    {
      "IgnoreImagesOnSerialization": false,
      "Repository": "{\r\n
        \"Screens\": [\r\n
          {\r\n
            \"Controls\": [\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Label\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"取得項目 'ALL'\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"div[Id=\\\"wrapper\\\"] > section > div > form > div > div > div > label[Text=\\\"ALL\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"label\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Label\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定from\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"#historicaldata-period-start-type-date\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"label\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定from月\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-start-month\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定from日\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-start-day\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Label\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定to\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"#historicaldata-period-end-type-date\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"label\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定to月\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-end-month\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定to日\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-end-day\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定from年\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-start-year\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Select\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"期間指定to年\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"select[Id=\\\"historicaldata-period-end-year\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"select\",\r\n
                \"ScreenshotPath\": null\r\n
              },\r\n
              {\r\n
                \"AutomationProtocol\": \"uia3\",\r\n
                \"ScreenShot\": null,\r\n
                \"ElementTypeName\": \"Anchor\",\r\n
                \"InstanceId\": null,\r\n
                \"Name\": \"Anchor 'csvダウンロード'\",\r\n
                \"SelectorCount\": 1,\r\n
                \"Selectors\": [\r\n
                  {\r\n
                    \"CustomSelector\": \"a[Class=\\\"csv_download_submit\\\"][Text=\\\"csvダウンロード\\\"]\",\r\n
                    \"Elements\": [],\r\n
                    \"Ignore\": false,\r\n
                    \"IsCustom\": true,\r\n
                    \"IsWindowsInstance\": false,\r\n
                    \"Order\": 0,\r\n
                    \"Name\": \"Default Selector\"\r\n
                  }\r\n
                ],\r\n
                \"Tag\": \"a\",\r\n
                \"ScreenshotPath\": null\r\n
              }\r\n
            ],\r\n
            \"ScreenShot\": null,\r\n
            \"ElementTypeName\": \"Web Page\",\r\n
            \"InstanceId\": null,\r\n
            \"Name\": \"Web Page 'https://www.tfx.co.jp/historical/fx/'\",\r\n
            \"SelectorCount\": 1,\r\n
            \"Selectors\": [\r\n
              {\r\n
                \"CustomSelector\": \":desktop > domcontainer\",\r\n
                \"Elements\": [\r\n
                  {\r\n
                    \"Attributes\": [],\r\n
                    \"CustomValue\": \"domcontainer\",\r\n
                    \"Ignore\": false,\r\n
                    \"Name\": \"Web Page 'https://www.tfx.co.jp/historical/fx/'\",\r\n
                    \"Tag\": \"domcontainer\"\r\n
                  }\r\n
                ],\r\n
                \"Ignore\": false,\r\n
                \"IsCustom\": true,\r\n
                \"IsWindowsInstance\": false,\r\n
                \"Order\": 0,\r\n
                \"Name\": \"Default Selector\"\r\n
              }\r\n
            ],\r\n
            \"Tag\": \"domcontainer\",\r\n
            \"ScreenshotPath\": null\r\n
          }\r\n
        ],\r\n
        \"Version\": 1\r\n
      }",
      "ImportMetadata": {
        "DisplayName": "ローカル コンピューター",
        "ConnectionString": "",
        "Type": "Local",
        "DesktopType": "local"
      },
      "Name": "appmask"
    }
  ],
  "ImageRepositorySymbol": {
    "Repository": "{\r\n  \"Folders\": [],\r\n  \"Images\": [],\r\n  \"Version\": 1\r\n}",
    "ImportMetadata": {},
    "Name": "imgrepo"
  },
  "ConnectionReferences": []
}

登録後
これを実行することで、自動で、1年ごとのデータをダウンロードできます。

タイトルとURLをコピーしました