我正在尝试编写一个 PowerShell 脚本来从网站上获取所有名为“newstitle”的类中的文本。
这就是我所拥有的:
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 -> 29.6 秒搜索包含类“newstitle”的 div
- 使用 Allelements -> 10.4 秒搜索包含类“newstitle”的开发人员
- 搜索其元素“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