解析网站并将html内容转换为PowerShell中的变量

时间:2016-11-24 06:14:34

标签: html class powershell url

如何调用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
    }

2 个答案:

答案 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