在 Powershell 中获取 JavaScript 结果

goo*_*ead 5 html javascript powershell

我有一个 CSHTML 文件,里面有一个块<script type="text/javascript"></script>

它将显示用户名:

for (var i = 0; i < result2.Users.length; i++) {
    var item = "<li style='width:100%;'>" + result2.Users[i].TchatEngineId.toString() + " | " + result2.Users[i].Pseudo + "</li>";
Run Code Online (Sandbox Code Playgroud)

现在我想在Powershell中得到这个结果,有人知道该怎么做吗?

我尝试使用Invoke-RestMethodand Invoke-WebRequest,但它总是返回源代码 HTML 而不是结果。

Loï*_*HEL 2

您可以尝试使用 Internet Explorer COM 对象实现自动化。

function wait4IE($ie=$global:ie){
    while ($ie.busy -or $ie.readystate -lt 4){start-sleep -milliseconds 200}
}


$global:ie=new-object -com "internetexplorer.application"
$ie.visible=$true
$ie.navigate("http://domain.com/file.html")
wait4IE

$names=$ie.Document.getElementsByTagName("li")
$names|%{$_.innerText} 
Run Code Online (Sandbox Code Playgroud)

  • 不要使 ie 可见,并且不要忘记在脚本末尾退出 ie `$ie.quit()`,这不会消耗太多资源......每一秒似乎有点太多了(所花费的时间启动 ie,打开 url 并解析页面....) (2认同)