前回から、Webページを自動取得するPowerShellスクリプトの作成に取り掛かっている。前回は、Windowsに同梱されているcurl.exeを使ってWebページを取得する方法を試し、これをベースにPowerShellスクリプトを作成した。今回はこれをさらに改良していく。

Windowsのcurl.exeを使う

curlコマンドはもともとLinuxなどのUNIX系OSで活用されているソフトウエアだ。シンプルにして強力なので、Webリソースの取得のみならず、Webサーバとの対話など多くの操作を行うことができる万能ツールとして重宝されている。

そして最近、Windowsにもデフォルトでこのコマンドが同梱されるようになった。現在では「C:\Windows\System32\curl.exe」にデプロイされているはずだ。

  • C:\Windows\System32\curl.exeにデフォルトでデプロイされるようになったcurlコマンド

    C:\Windows\System32\curl.exeにデフォルトでデプロイされるようになったcurlコマンド

前回は、このcurl.exeを実行する簡単なPowerShellスクリプトを作成した。次の「netcat.ps1」だ。

#!/usr/bin/env pwsh

#========================================================================
# URLで指定されたリソースを取得
#========================================================================

#========================================================================
# 引数を処理
#   -URL url        WebリソースのURL
#========================================================================
Param(
    [Parameter(Mandatory=$true)][String]$URL = ""
)

#========================================================================
# Webリソース取得に利用するアプリケーション
#========================================================================
$curl='C:\Windows\System32\curl.exe'

#========================================================================
# curl を使って取得する
#========================================================================
& $curl -get $URL

しかし、実はこのスクリプトでは取得できないWebページというものがいくつも存在している。curlにはそうした場合に使用できるオプションが用意されており、ある程度オプションを組み合わせることでより多くのWebページが取得できるようになる。今回はそうした部分に焦点を当てて改良していく。

curlで取得できないWebページを探す

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら