0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JEPXスポット市場価格データをcURLでダウンロードする

Last updated at Posted at 2024-07-31

目的

JEPXのスポットデータをダウンロードする。なお、本記事は、2024年7月31日現在のもので、JEPXの仕様が変わった場合は使えません。

はじめに

JEPXのデータは、ダウンロードする際にモーダル表示されることと、POSTされるとき別タブで開くのでChromeの開発者機能を使ってもコードが追いにくいです。ちょっと小技的なところを駆使してcurlでダウンロードできるようにしました。

JEPXのダウンロード用のURLを解析

手前味噌的なところはありますが、Chromeの開発者ツールを使います。スポット価格は下図のようになっていますので、まずは、データダウンロードボタンを押して、モーダル表示されるのを確認します。
image.png

モーダル表示

上図で、データダウンロードを押すと下図のようなモーダル表示となります。ここで、データダウンロードを押すと、別タブにてダウンロードが始まります。
image.png

開発者ツールで開く

開発者ツールで開くと次のようになっていました。
image.png

該当するコードだけ抜き取ると次の部分です。

<form method="post" target="_blank" action="/_download.php?timestamp=1722431019171">
  <label class="modal-box__content__label" for="download-file">年度選択</label>
  <input type="hidden" name="dir" value="spot_summary">
  <select class="modal-box__content__select" name="file" id="dl-select--spot_summary">
    <option value="spot_summary_2024.csv">2024年度</option>
    <option value="spot_summary_2023.csv">2023年度</option>
    <option value="spot_summary_2022.csv">2022年度</option>
    <option value="spot_summary_2021.csv">2021年度</option>
    <option value="spot_summary_2020.csv">2020年度</option>
    <option value="spot_summary_2019.csv">2019年度</option>
    <option value="spot_summary_2018.csv">2018年度</option>
    <option value="spot_summary_2017.csv">2017年度</option>
    <option value="spot_summary_2016.csv">2016年度</option>
    <option value="spot_summary_2015.csv">2015年度</option>
    <option value="spot_summary_2014.csv">2014年度</option>
    <option value="spot_summary_2013.csv">2013年度</option>
    <option value="spot_summary_2012.csv">2012年度</option>
    <option value="spot_summary_2011.csv">2011年度</option>
    <option value="spot_summary_2010.csv">2010年度</option>
    <option value="spot_summary_2009.csv">2009年度</option>
    <option value="spot_summary_2008.csv">2008年度</option>
    <option value="spot_summary_2007.csv">2007年度</option>
    <option value="spot_summary_2006.csv">2006年度</option>
    <option value="spot_summary_2005.csv">2005年度</option>
  </select>
  <button class="dl-button" type="submit">
    <span class="dl-button__txt">データダウンロード</span>
  </button>
</form>

POSTしているのですが、dirとnameという属性をヘッダーにつける必要がありそうです。
よくわからないので、Chrome上で、target="_blank" の部分を削除して、実際にデータをダウンロードしてみます。

データをダウンロードする際、ネットワークタブを見ると次のようになっていました。
スクリーンショット 2024-07-31 221437.png

環境に合わせて、

  • Copy as cURL(cmd)<--今回はこれを選択
  • Copy as cURL(bash)
  • Copy as PowerShell

等々から適当に選んでください。
スクリーンショット 2024-07-31 221514.png

いろいろ環境に応じてUserAgentの情報とか付加されますが必要なのは以下のものだと思います。

curl "https://www.jepx.jp/_download.php?timestamp=1722431019171" ^
  -H "content-type: application/x-www-form-urlencoded" ^
  -H "referer: https://www.jepx.jp/electricpower/market-data/spot/" ^
  --data-raw "dir=spot_summary&file=spot_summary_2024.csv"

またタイムスタンプは、jsファイルを確認いただければわかりますが、

(new Date()).getime()

となっているので、都度生成は必要ないと思いますが、状況に応じて生成してもらえれば良いかなと思います。

免責事項

JEPXでは、スクレイピング等を禁止している可能性があります。試行する際も含めてホームページの情報を確認の上実施していただくとともに、本コードにより損害を受けたあるいは与えた場合であっても、当方は一切の責任を負わないものとします。

所感

需要があるかはわからない。

REFERENCEs

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?