1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

特定のWebページに関する情報を取得するPowershellコード

2022-01-04 19:47:39

Powershellを使えば、Webページの情報を取得し、対応するコンテンツを読み出すことが非常に簡単にできます。オブジェクトがXMLやJson形式であれば、より簡単に扱うことができ、invoke-restmethodやinvoke-webrequestというコマンドがよく使われる。前者は主にJson形式のコンテンツを取得し、後者はWebページ全体のコンテンツを取得することができる。

例えば、明日のシドニーの天気を調べたいとします。APIを提供している適当なサイトをウェブで検索してみた。
http://openweathermap.org/current#name

シドニーを検索するので、対応するフォーマットは
http://api.openweathermap.org/data/2.5/weather?q=sydney,au他会自动生成一个Json格式的结果。

この結果は、例えば invoke-restmethod で直接得ることができます。

$b=invoke-restmethod "http://api.openweathermap.org/data/2.5/weather?q=sydney,au"
  $c=[pscustomobject]@{   
  'Description'=$b.weather.description 
  'name'=$b.name 
  'windspeed'=$b.wind.speed   
  } 

また、invoke-webrequestを使ってページ全体を取得し、同様にJsonフォーマットから変換することもできます。

$a= Invoke-WebRequest -Uri "http://api.openweathermap.org/data/2.5/weather?q=sydney,au"$b=$a.Content | ConvertFrom-Json

同様に、あるブログのRSSフィードから最新のコンテンツを取得したい場合。invoke-webrequest を使って、対応する XML ファイルを取得することができます。

[xml]$a= Invoke-WebRequest -Uri "http://blogs.msdn.com/b/powershell/rss.aspx"$a.rss.channel.Item | select title,pubdate

パワフルでありながら、シンプルに使える。

この記事は、「麻婆豆腐」ブログから転載しています。