从html页面抓取并显示数据Powershell

时间:2017-04-18 03:58:19

标签: html powershell webrequest

您好我正在制作一个简单的命令行工具,它将帮助我通过SSH / Powershell从我的游戏服务器传达/获取数据。我试图从192.95.23.181:11775(显示球员数量,地图名称,变体,端口等)中获取一些数据

如何获取特定数据并使用PowerShell显示它。 例如

`$server = Invoke-WebRequest -URI 192.95.23.181:11775

PS C:\Users\Administrator> $server.Content

{"name":"#2 [US-EAST] Dedicated Community Infection Server","port":11774,"hostPlayer":"HaloInfect.Net","isDedicated":tr
ue,"sprintEnabled":"1","sprintUnlimitedEnabled":"0","assassinationEnabled":"1","VoIP":true,"teams":false,"map":"Green J
ourney","mapFile":"riverworld","variant":"Toxic Fatkid","variantType":"infection","status":"InGame","numPlayers":2,"max
Players":16,"xnkid":"5314a305e810484089d439e5089d24fe","xnaddr":"c53527ae684116459bdab2a2154fa4e6","players":[{"name":"
1321","score":0,"kills":0,"assists":0,"deaths":0,"team":0,"isAlive":true,"uid":"83217235a7e315bb"},{"name":"Max","score
":0,"kills":0,"assists":0,"deaths":0,"team":1,"isAlive":false,"uid":"f523149f39fc331e"}],"gameVersion":"1.106708_cert_m
s23___release","eldewritoVersion":"0.5.1.1"}
PS C:\Users\Administrator>`

让我们说我想在“numplayer:或地图之后的地图名称”之后抓取数字,我该如何编写一个搜索和显示这些数据的脚本。

希望有意义,提前谢谢

1 个答案:

答案 0 :(得分:1)

$data=convertfrom-json $server.content
$data.numPlayers

应该这样做。

ConvertFrom-Json从您的回复中生成一个普通的Powershell对象,因为它实际上是一个JSON响应。然后,您可以直接查询其字段。如果您需要发送JSON请求,您应该创建一个具有所需结构的对象,然后调用ConvertTo-Json以获取要发送的字符串。