我正在与Powershell一起尝试网页编写,并想知道是否有更简单的方法来处理元素?
有没有办法将一个Html页面转换为PowerShell中具有适当深度的对象?类似于Convert-ToJson -Depth的东西?
例如,要获得某些结果:
$page = Invoke-WebRequest -uri $URI
Write-Host $page.html.body.div[4].a[5]
或者可能
$page = Invoke-WebRequest -uri $URI
$divs = $page.getElementsbyID("image-div")
$thumbs = $ $divs.getElementsbyID("thumbnails")
Write-host $thumbs[4]
Powershell中是否有一些附加组件或功能可以将html解析为具有深度的对象?
是的,$page.ParsedHtml
为您提供了对象结构。
作为一个提示,你可以学习如何在PowerShell
中发现这样的功能:将你的对象传输到Get-Member
以查看所有可用的属性/方法等。为了快速查看所有属性,你可以将它传递给select *
你可能正在寻找getElementsByTagName
$ret = invoke-webrequest -uri [uri]
$ret.parsedhtml.getelementsbytagname('table')[0]
获取html文档中的第一个表
$ret.parsedhtml.getelementsbytagname('tr')[0]
获取HTML文档中的第一行<tr>
行。