yahooのニューストピックの名前を正規表現で取得する

PowerShellは.Net.Frameworkのクラスを使用することが出来ます。.Net.FrameworkはWebアプリケーション作成ためのモジュールがそろっています。Webに関してはいろいろと操作が出来るという事です。system.Net.webclientクラスはインターネットの各リソースとのデータの送受信用を行うことが出来ます。そのため、webのソースを取得できます。これを使用して、正規表現でyahooのニューストピックの名前を正規表現で取得するシェルを作成しました。DownloadDataというメソッドはバイト形式でwebのデータを取得できます。取得したデータを文字列化して正規表現でトピックの項目名を検索しています。

set-PSDebug -strict
# ----------------------------
# yahooのニューストピックの名前を正規表現で取得する
# ----------------------------

# URL設定
$url = "http://www.yahoo.co.jp/"

# 読み込むサイトの文字コード設定
$code_type = "utf-8"

# トピックの検索パターン設定
$topics = "<a href=`"f/topics/top_table/\d/.*?(http.*?)`">(.+?)</a>"

# ソースデータ読み込み時のencoding
$enc = [system.Text.Encoding]::GetEncoding($code_type)

# webclientオブジェクト生成
$wc = new-Object system.Net.webclient

# ソースデータ取得
$data = $wc.DownloadData($url)
$src = $enc.GetString($data)

# トピック検索
$matches = [regex]::matches($src,$topics,"SingleLine")

# 画面表示
foreach ( $m in $matches ) {
    $str = $m.result("`$2    [ `$1 ]")
    if( $str -notmatch "<img src" ){
        write-Host $str
    }
}