gpt4 book ai didi

powershell - 如何使用Powershell选择HTML属性值

转载 作者:行者123 更新时间:2023-12-02 23:25:01 26 4
gpt4 key购买 nike

我不知道如何从Invoke-Webrequest的某些属性中提取值

到目前为止,我有:

$r = Invoke-WebRequest -Uri "http://someInternalSite.com"

从我得到的回馈中,我从页面上通过ID获得具有以下内容的特定表:
 $h = $r.ParsedHtml.body.getElementsByTagName('table') | Where {$_.id -eq 'SpecificIdOfTable'}

然后,我可以使用以下命令查看表格的html:
$h = $s.getAttribute('outerhtml')

输出如下:
<TABLE id=SpecificIdOfTable>
<TBODY>
<TR>
<TD>
<INPUT id=SpecificIdOfTable_0 type=checkbox value=11 name=SpecificIdOfTable$0><LABEL for=SpecificIdOfTable_0>First</LABEL>
</TD>
<TD><INPUT id=SpecificIdOfTable_2 type=checkbox value=12 name=SpecificIdOfTable$2><LABEL for=SpecificIdOfTable_2>Second</LABEL>
</TD>
</TR>
<TR>
<TD>
<INPUT id=SpecificIdOfTable_1 type=checkbox value=13 name=SpecificIdOfTable$1><LABEL for=SpecificIdOfTable_1>Third</LABEL>
</TD>
<TD></TD></TR></TBODY></TABLE>

我想从每个td的value =属性中获得服装值11、12和13。我已经尝试过getByAttribute但是我一直在出错。我发现,outerHTML只是一个字符串。由于powershell是一种对象脚本语言,是否有任何方法可以将这些属性作为对象访问,而无需使用正则表达式就可以提取每个值?如果我需要正则表达式会是什么样?

如果有人可以回答,也是一个奖励问题。我试图用管道缩短请求(以避免$ h =语句),但是遇到了错误。当我尝试缩短脚本时,我在做什么错?
$r.ParsedHtml.body.getElementsByTagName('table') | Where {$_.id -eq 'SpecificIdOfTable'} | select outerHTML

要么
$r.ParsedHtml.body.getElementsByTagName('table') | Where {$_.id -eq 'SpecificIdOfTable'} | $_.getAttribute('outerhtml')

都不起作用,我也不知道为什么或如何缩短代码。

最佳答案

试试这个

$r.ParsedHTML.GetElementByID('SpecificIdOfTable').GetElementsByTagName('input') |
Select-Object -Property id, value

关于powershell - 如何使用Powershell选择HTML属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com