Powershell可以很轻松的获取网页的信息并读取到对应的内容。如果对象的格式是XML或者Json,那就更容易处理了,一般经常使用invoke-restmethod和invoke-webrequest这两个命令。前者主要是获取Json格式的内容,后者可以获取整个网页的内容。
比如说我希望查询明天悉尼的天气如何。网上随便搜了一个提供API的站点
http://openweathermap.org/current#name
我打算搜索悉尼的,那么对应的格式是
http://api.openweathermap.org/data/2.5/weather?q=sydney,au他会自动生成一个Json格式的结果。
我们可以用invoke-restmethod直接获取这个结果,比如说
1
2
3
4
5
6
7
8
|
$b
=
invoke-restmethod
"http://api.openweathermap.org/data/2.5/weather?q=sydney,au"
$c
=
[pscustomobject]
@{
'Description'
=
$b
.weather.description
'name'
=
$b
.name
'windspeed'
=
$b
.wind.speed
}
|
我也可以直接使用invoke-webrequest抓取整个网页的内容,然后从Json的格式转换过来也是一样的
1
2
|
$a
=
Invoke-WebRequest
-Uri
"http://api.openweathermap.org/data/2.5/weather?q=sydney,au"
$b
=
$a
.Content |
ConvertFrom-Json
|
类似的,如果我想获取一个博客的RSS的最新内容。可以使用invoke-webrequest抓取对应的XML文件,比如
1
2
3
|
[xml]
$a
=
Invoke-WebRequest
-Uri "http://blogs.msdn.com/b/powershell/rss.aspx“
$a
.rss.channel.Item | select title,pubdate
|
功能很强大,使用却很简单。
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1700365,如需转载请自行联系原作者