旬のトピック、最新ニュースのマピオンニュース。地図の確認も。

PowerShell Core入門 - 基本コマンドの使い方 第242回 グラフを書く- データの抽出と整理

2023年03月17日08時00分 / 提供:マイナビニュース

今回は、グラフに描画するデータを整理する作業について説明する。

インターネット経由でさまざまなデータを取得できるようになったことで、Webで公開されているデータを利用する機会が増えている。PowerShellは、そうした厳密には構造化されているとは言えないデータから、目的の数値データを取り出す処理にも使うことができる。

→連載「PowerShell Core入門 - 基本コマンドの使い方」の過去回はこちらを参照。

【こちらもオススメ】
【連載】意外と知らないMicrosoft Edgeの便利な使い方
【連載】定時で上がろう! Excel関数の底力

データの準備

Webで公開されているデータにはさまざまなものがあるが、ここでは気象庁が「気象庁|最新の気象データ」で公開している気温データを取得してグラフに描画するケースを考える。このWebページは、執筆時点では次のようなレイアウトでデータが配置されている。

このデータの中から、東京都のデータを取り出すことを考える。東京都のデータは、次のように掲載されている。

Microsoft Edgeの開発者ツールで該当部分を見てみると、table要素の中に記載されていることがわかる。

該当ページのHTMLをダウンロードし、Visual Studio Codeで確認すると次のようになっている。

Visual Studio Codeで閲覧するとフォーマットが自動的に整えられてしまうので、メモ帳でも確認しておく。

要するに、この文字列から地名と気温を抽出するPowerShellスクリプトを書けばよいということになる。

なお、このページのデータはCSVデータとしても提供されているので、通常ならそちらのデータを使う方がロジカルな選択だ。しかし今回は、フォーマットが曖昧な状態のテキストから、目的とする数値を取り出す例を示したいので、あえてWebページからデータを取得している。
Webページを取得するPowerShellスクリプト

まず、対象のWebページを取得して表示するPowerShellスクリプトを作成する。Webページの取得には、Windowsにデフォルトでインストールされているcurlコマンドを使う。curlは強力なコマンドで、LinuxやMacでもよく使われている。

#!/usr/bin/env pwsh

#========================================================================
# 気温データを取得して整理する
#========================================================================
$URL = 'https://www.data.jma.go.jp/obd/stats/data/mdrr/tem_rct/alltable/mxtemsad00.html'
$SrcFile = New-TemporaryFile

curl --get $URL > $SrcFile 2> $null

#========================================================================
# 取得したデータの中身を確認
#========================================================================
Get-Content $SrcFile

#========================================================================
# 作業用の一時ファイルを削除
#========================================================================
Remove-Item $SrcFile

実行すると次のようになる。

PS C:\Users\daichi> .\test-1.ps1

気象庁|最新の気象データ

...

...
PS C:\Users\daichi>

必要なデータを取り出すPowerShellスクリプト

次に、必要になる部分だけを抽出する処理を加える。取得したHTMLを中身を分析すると、「>東京都 $SrcFile 2> $null

#========================================================================
# 必要な部分のデータを抽出する
#========================================================================
Get-Content $SrcFile |
Select-String '>東京都

続きを読む ]

このエントリーをはてなブックマークに追加

関連記事

ネタ・コラムカテゴリのその他の記事

地図を探す

今すぐ地図を見る

地図サービス

コンテンツ

電話帳

マピオンニュース ページ上部へ戻る