PowerShellを使って簡単にウェブページのリンク一覧を取得する方法です。
あくまで簡単なものですので、悪しからず。
Invoke-WebRequestコマンドレットを使います。
URLはyahooさんを使わせていただきました。
$url='https://www.yahoo.co.jp/'のところを好きなURLに変更して実行してみてください。
innerTextがリンク文字列で、hrefがリンク先のURLです。
単純にコンソールに表示
シンプルにコンソールに表示します。
$url='https://www.yahoo.co.jp/' $request=Invoke-WebRequest -Uri $url $request.Links|Select-Object innertext,href
hrefが切れてしまっているときは、Format-Listコマンドレットに渡してもいいですね。
$url='https://www.yahoo.co.jp/' $request=Invoke-WebRequest -Uri $url $request.Links|Select-Object innertext,href|Format-List
GUIでかっこよく出力する
Out-GridViewコマンドレットに渡すことで小粋なウィンドウを出してくれるので、コナレ感を出すことができます。
$url='https://www.yahoo.co.jp/' $request=Invoke-WebRequest -Uri $url $request.Links|Select-Object innertext,href|Out-GridView-Title 'リンク一覧だぞ'
ワンライナーで書いてみる
カッコよくワンライナーで書いてみます。
(Invoke-WebRequest -Uri 'https://www.yahoo.co.jp/').links|Select-Object innertext,href
CSV形式で出力する
みんな大好き、CSV形式です。
$url='https://www.yahoo.co.jp/' $request=Invoke-WebRequest -Uri $url $request.Links|Select-Object innertext,href|Export-Csv -Path .\links.csv -Encoding Default -NoTypeInformation
json形式で出力する
まさかのjson形式。
$url='https://www.yahoo.co.jp/' $request=Invoke-WebRequest -Uri $url $request.Links|Select-Object innertext,href|ConvertTo-Json
終わりに
PowerShellを使って色んなパターンでリンク一覧を取得してみました。
他にもいろいろな出力の形がありますが、きりがないのでこれくらいにしておきます。
リンクの調査など、ちょっとしたときに使ってみてください。
ここまでお読みいただき、ありがとうございました。