[计算机] 如何使用PowerShell下载必应每日图片

查看:496 |回复:1 | 2018-1-5 10:17:10

您需要 登录 才可以下载或查看,没有账号?注册

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

今天想聊聊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 是无法从下图中得到的网页代码读取任何有用信息所以必须要转换。
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg

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

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

2018-1-5 10:17:10  
 赞 赞 0

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
2#
我是用Python写的...
001.png
回复 收起回复
2018-2-22 14:36:24   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

综合文库
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表