PowerShell 技能连载 - 从网站上下载图片

有许多有趣的网站,其中一个是 www.metabene.de (至少面向德国访访客),有 33 页内容,艺术家展示了他的绘画,并提供免费下载(只允许私人使用·私人使用)。

在类似这种情况中,PowerShell 可以帮助您将手动从网站下载图片的操作自动化。在 PowerShell 3.0 中,引入了一个称为 Invoke-WebRequest 的“PowerShell 浏览器”,它能够将人类在一个真实浏览器中操作的大多数事情自动化。

当您运行这段脚本时,它访问所有的 33 个网页,检查所有的图片链接,并将它们保存到硬盘上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# open destination folder (and create it if needed)
$folder = 'c:\drawings'
$exists = Test-Path -Path $folder
if (!$exists) { $null = New-Item -Path $folder -ItemType Directory }
explorer $folder

# walk all 33 web pages that www.metabene.de offers
1..33 | ForEach-Object {
$url = "http://www.metabene.de/galerie/page/$_"

# navigate to website...
$webpage = Invoke-WebRequest -Uri $url -UseBasicParsing

# take sources of all images on this website...
$webpage.Images.src |
Where-Object {
# take only images that were uploaded to this blog
$_ -like '*/uploads/*'
}
} |
ForEach-Object {
# get filename of URL
$filename = $_.Split('/')[-1]
# create local file name
$destination= Join-Path -Path $Folder -ChildPath $filename
# download pictures
Invoke-WebRequest -Uri $url -OutFile $destination
}

本文国际来源:Downloading Pictures from Website

评论