如何调用URL并将页面内容转换为要在PowerShell中使用的变量?
HTML页面如下所示:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<span class="server1var1">8</span>
<span class="server1var2">2</span>
<span class="server2var1">5</span>
<span class="server2var2">1</span>
</body>
</html>
然后在PowerShell中我想要这些变量:
$server1var1 = "8"
$server1var2 = "2"
$server2var1 = "5"
$server2var2 = "1"
接受以下答案并进行一项修改,以使其适用于我。将$_.textContent
更改为$_.innerhtml
解决了这个问题。
$content = Invoke-WebRequest -Uri 'http://urltomysite'
$content.ParsedHtml.getElementsByTagName('span') | ForEach-Object {
New-Variable -Name $_.className -Value $_.innerhtml
}
答案 0 :(得分:2)
使用Invoke-WebRequest
cmdlet检索您网站的内容。然后使用getElementsByTagName
属性的ParsedHtml
来检索所有span
标记。最后使用New-Variable
cmdlet将它们转换为变量:
$content = Invoke-WebRequest -Uri 'http://gameadmin.zerosurvival.com/servercodes.php'
$content.ParsedHtml.getElementsByTagName('span') | ForEach-Object {
New-Variable -Name $_.className -Value $_.textContent
}
运行此功能后,如果您输入$server1var1
,则会获得8
。
答案 1 :(得分:1)
其他解决方案
$template=@'
<span class="{servername*:server1var1}">{value:8}</span>
<span class="{servername*:server1var2}">{value:2}</span>
'@
(Invoke-WebRequest -Uri 'http://www.google.fr').ParsedHtml.body.innerHTML | ConvertFrom-String -TemplateContent $template