如何使用PowerShell解析网站的HTML

问题描述 投票:1回答:1

我正在尝试检索有关网站的一些信息,我想查找特定的标签/类,然后返回所包含的文本值(innerHTML)。这是我到目前为止的内容

$request = Invoke-WebRequest -Uri $url -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
$src = $request.RawContent
$HTML.write($src)


foreach ($obj in $HTML.all) { 
    $obj.getElementsByClassName('some-class-name') 
}

我认为将HTML转换为HTML对象存在问题,因为在尝试“选择对象”它们时会看到很多未定义的属性和空结果。

所以花了两天之后,我应该如何使用Powershell解析HTML?

因此,由于使用正则表达式解析HTML非常重要,因此我该如何做?似乎没有任何效果。

html powershell dom html-parsing
1个回答
0
投票

由于没有其他人发布了答案,因此我设法通过以下代码获得了可行的解决方案:

$request = Invoke-WebRequest -Uri $URL -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
[string]$htmlBody = $request.Content
$HTML.write([ref]$htmlBody)
$filter = $HTML.getElementsByClassName($htmlClassName)

[使用某些URL,我体验到$ filter变量在填充其他URL时为空。总而言之,这可能适合您的情况,但似乎Powershell并不是进行更复杂的解析的方法。

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