PowerShellでHTMLファイルから画像のURLを取り出す

| 2009年11月7日土曜日
ワンライナーでできるのは便利。
なんとなく、もっと短くできそうな気がするけど、今の俺ではこの長さ。

正規表現の部分を変えれば、「zip」だけを返したりも出来る。ここでは、JPEG、GIF、PNG、BMPをマッチさせている。
抜きたかったHTMLでしかテストしてないから、上手くいかないサイトもあるかも。
  1. Get-Content foo.html | % { if ( $_ -match "http://.*\.(jpg|jpeg|gif|png|bmp)") { $Matches.Values | % { $_.Split("`"") | % { if ($_ -match "\.(jpg|jpeg|gif|png|bmp)") { return $_ }}}}}
ついでに、某大きな掲示板用
本文に”ttp://~~~/~~~”が普通なので、最初にばっさりHTMLのタグを消してしまってから処理している。
  1. (Get-Content foo.html) -replace "<.*?>","" | % { if ( $_ -match "ttp://.*\.(jpg|jpeg|gif|png|bmp)") { $Matches.values | % { $_.Split() | % { if ($_ -match "\.(jpg|jpeg|gif|png|bmp)") { return $_.Replace("ttp://","http://") }}}}}

0 コメント: