0

尝试使用 PowerShell 解析和抓取网页,这是我们拥有的一种软件库存管理网站,代码如下

$test = Invoke-WebRequest -UseBasicParsing -Uri https://testuser -UseDefaultCredentials
$test.ToString() -split "[`r`n]" |
    Select-String "Usbser.sys" |
    ConvertFrom-StringData

它可以工作,除了我还需要我正在搜索的 s/w 版本。

电流输出:

Name                           Value                                                                                                                                                                                                
----                           -----                                                                                                                                                                                                
<td class                      "info">Usbser.sys </td

$test.ToString()给我以下数据:

<td class="info">Usbser.sys </td>
        <td class="info">10.0.16299.334</td>

如何从当前输出中裁剪出这些标签并让它显示版本信息 10.0.16299.334?

Edit1:所以我设法按照 Lieven 的建议找到了课程

className                    : 
id                           : installedSoftwareContainer
tagName                      : DIV
parentElement                : System.__ComObject
style                        : System.__ComObject
onhelp                       : 
onclick                      : 
ondblclick                   : 
onkeydown                    : 
onkeyup                      : 
onkeypress                   : 
onmouseout                   : 
onmouseover                  : 
onmousemove                  : 
onmousedown                  : 
onmouseup                    : 
document                     : mshtml.HTMLDocumentClass
title                        : 
language                     : 
onselectstart                : 
sourceIndex                  : 1496
recordNumber                 : 
lang                         : 
offsetLeft                   : 0
offsetTop                    : 0
offsetWidth                  : 0
offsetHeight                 : 0
offsetParent                 : 
innerHTML                    : 
                                   <table width="100%" border="1" cellspacing="0" cellpadding="5">
                                     <tbody><tr>
                                       <td class="caption">Name</td>
                                       <td class="caption">Version</td>
                                     </tr>
                                     <tr>
                                       <td class="info">1E NomadBranch x64</td>
                                       <td class="info">6.3.201</td>
    InnerText : 1E NomadBranch x646.3.201

但是当我尝试下面的代码时,我什么也没得到

$test = Invoke-WebRequest  -Uri https://testurl.com -UseDefaultCredentials 

$test.ParsedHtml.getElementbyid('installedsoftwarecontainer') | select innertext

我究竟做错了什么?

4

1 回答 1

0

经过一天的努力,我发现了这一点,并在我的代码中实现了相同的方法来进一步拆分内部文本和过滤器。

powershell -split('') 指定新行

My Code:

     $test = Invoke-WebRequest  -Uri 'https:\\testURL.com' -UseDefaultCredentials 


    $data = $test.ParsedHtml.IHTMLDocument3_getElementById('installedSWContainer') |  select-object -ExpandProperty innertext

    $out = $data.Split([Environment]::NewLine) | Select-string -pattern "citrix"
于 2019-07-31T05:05:34.617 回答