在Powershell中,有没有办法将html转换为具有深度的对象?

问题描述 投票:0回答:2

我正在与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解析为具有深度的对象?

html powershell parsing
2个回答
0
投票

是的,$page.ParsedHtml为您提供了对象结构。

作为一个提示,你可以学习如何在PowerShell中发现这样的功能:将你的对象传输到Get-Member以查看所有可用的属性/方法等。为了快速查看所有属性,你可以将它传递给select *


-1
投票

你可能正在寻找getElementsByTagName

$ret = invoke-webrequest -uri [uri]

$ret.parsedhtml.getelementsbytagname('table')[0] 

获取html文档中的第一个表

$ret.parsedhtml.getelementsbytagname('tr')[0]

获取HTML文档中的第一行<tr>行。

© www.soinside.com 2019 - 2024. All rights reserved.