Web サイトから「newstitle」という名前のすべてのクラス内のテキストを取得する PowerShell スクリプトを作成しようとしています。
これは私が持っているものです:
function check-krpano {
$geturl=Invoke-WebRequest http://krpano.com/news/
$news=$geturl.parsedhtml.body.GetElementsByClassName("newstitle")[0]
Write-Host "$news"
}
check-krpano
明らかにもっと微調整が必要ですが、今のところうまくいきません。
GetElementById を使ってスクリプトを書くことはできたのですが、GetElementsByClassName の構文がわからず、正直あまり情報を見つけることができませんでした。
ノート:
質問に対する正しい答えにチェックを入れましたが、それはスクリプトで使用することを選択した解決策ではありません。
2 つの方法を使用して、特定のクラスを含むタグ内のコンテンツを見つけることができましたが、リンクの検索よりもはるかに時間がかかりました。
Measure-Command を使用した出力は次のとおりです。
- parsedhtml.body を使用してクラス「newstitle」を含む div を検索 -> 29.6 秒
- Allelements を使用してクラス「newstitle」を含む開発者を検索 -> 10.4 秒
- 要素「href」に #news が含まれるリンクを検索 -> 2.4 秒
そのため、Links メソッドの回答が有用であるとマークしました。
これは私の最終的なスクリプトです:
function check-krpano {
Clear-Host
$geturl=Invoke-WebRequest http://krpano.com/news
$news = ($geturl.Links |Where href -match '\#news\d+' | where class -NotMatch 'moreinfo+' )
$news.outertext | Select-Object -First 5
}
check-krpano