如何使用POWERSHELL下载必应每日图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用POWERSHELL下载必应每日图片相关的知识,希望对你有一定的参考价值。

好久好久没写技术类的文章了,本人这几年也是大起大伏经历了不少大事。最近也终于可以静下心来写点东西。


今天想聊聊POWERSHELL对于WEB页面的一些应用,本人也是最近才发觉其实PS也是可以做爬虫的。。。所以想抛砖引玉给大家一个思路。


这次要用到的主要命令是 invoke-webrequest 


先来看看官方对于这个命令的介绍

The Invoke-WebRequest cmdlet sends HTTP, HTTPS, FTP, and FILE requests to a web page or web service. It parses the response and returns collections of forms, links, images, and other significant html elements.

https://docs.microsoft.com/zh-cn/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest?view=powershell-5.1


其实很好理解,这条PS命令可以让你模拟浏览器发送请求给网站,并且得到你要的信息。

所以今天我们就从简单的入手,用POWERSHELL下载每日必应的美图




#bing每日图片 完整代码


$picurl = "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=10"

$data = invoke-webrequest $picurl

$decode = convertfrom-json -inputobject $data.content

$images = $decode.images

foreach ($image in $images)

{

$imageurl = $image.url

$fullurl = "http://www.bing.com" + $imageurl

$name = $image.hsh

invoke-webrequest $fullurl -outfile ($name + ".jgp")

}



其中最关键的点是如何将乱码一样的content转换为Json, 这里要用到 convertfrom-json,由于powershell 是无法从下图中得到的网页代码读取任何有用信息所以必须要转换。

技术分享图片


在成功转换之后存储在$decode里的变量变成PS易懂的格式,其中包含了该图片的URL和名称以及哪位大神的作品等等信息。再接下去就很好处理了。

技术分享图片


foreach ($image in $images)

{

$imageurl = $image.url

#获取图片URL

$fullurl = "http://www.bing.com" + $imageurl

#补全URL

$name = $image.hsh

#获取图片名称

invoke-webrequest $fullurl -outfile ($name + ".jgp")

#下载到PS运行目录

}


脚本虽然简单但是给我的启发很大,让我看到了PS的无限可能。

END


以上是关于如何使用POWERSHELL下载必应每日图片的主要内容,如果未能解决你的问题,请参考以下文章

必应每日壁纸下载|必应每日壁纸V3.3.1免费下载

必应(http://cn.bing.com/)每日图片下载

如何获取 bing 每日壁纸(超高清版)

怎样保存必应每天自动更换的壁纸?

我是如何白嫖 Github 服务器自动抓取每日必应壁纸的?

批处理脚本获取必应的每日图片