VBScript 从目标下载多个图像 URL
VBScript Download Multiple Images from the TARGET URL
Dim xhr
Dim document
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
xhr.open "GET", document.getElementsByTagName("img")(0).src, False xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\a.jpg", 2
end with
set stream = nothing
set xhr = nothing
stream.Close
以上是我的代码,我正在尝试从 "TARGET URL" 下载多张图片。
我目前正在寻找的最佳解决方案是通过 VBS 下载多个图像,但 VBA 也是可能的选择。
从上面的VBScript,我不确定如何用Stream循环从指定的URL..
下载多个图像
您知道如何编写循环(您已经在使用了)。只需将 getElementsByTagName("img")(0)
替换为 getElementsByTagName("img")(index)
,其中 index
是循环递增的变量。 getElementsByTagName("img")
returns 一个集合,您可以查询它 count
以了解要循环多少次。
Dim document
Dim xhr
Dim images
Dim index
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
set images = document.getElementsByTagName("img")
For index = 0 To images.count-1
xhr.open "GET", images(index).src, False
xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\" + CStr(index) + ".jpg", 2
end with
stream.Close
set stream = nothing
Next
set images = nothing
set xhr = nothing
set document = nothing
或者,您可以使用 for each
循环枚举集合:
Dim document
Dim xhr
Dim images
Dim image
Dim index
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
set images = document.getElementsByTagName("img")
set index = 0
For each image in images
xhr.open "GET", image.src, False
xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\" + CStr(index) + ".jpg", 2
end with
stream.Close
set stream = nothing
index = index + 1
Next
set images = nothing
set xhr = nothing
set document = nothing
Dim xhr
Dim document
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
xhr.open "GET", document.getElementsByTagName("img")(0).src, False xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\a.jpg", 2
end with
set stream = nothing
set xhr = nothing
stream.Close
以上是我的代码,我正在尝试从 "TARGET URL" 下载多张图片。
我目前正在寻找的最佳解决方案是通过 VBS 下载多个图像,但 VBA 也是可能的选择。
从上面的VBScript,我不确定如何用Stream循环从指定的URL..
下载多个图像您知道如何编写循环(您已经在使用了)。只需将 getElementsByTagName("img")(0)
替换为 getElementsByTagName("img")(index)
,其中 index
是循环递增的变量。 getElementsByTagName("img")
returns 一个集合,您可以查询它 count
以了解要循环多少次。
Dim document
Dim xhr
Dim images
Dim index
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
set images = document.getElementsByTagName("img")
For index = 0 To images.count-1
xhr.open "GET", images(index).src, False
xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\" + CStr(index) + ".jpg", 2
end with
stream.Close
set stream = nothing
Next
set images = nothing
set xhr = nothing
set document = nothing
或者,您可以使用 for each
循环枚举集合:
Dim document
Dim xhr
Dim images
Dim image
Dim index
Dim stream
set document = WScript.GetObject("TARGET URL")
While document.readyState <> "complete"
WScript.Sleep 200
Wend
set xhr = CreateObject("MSXML2.XMLHTTP.3.0")
set images = document.getElementsByTagName("img")
set index = 0
For each image in images
xhr.open "GET", image.src, False
xhr.send
set stream = CreateObject("Adodb.Stream")
with stream
.type = 1
.Open
.Write xhr.responsebody
.SaveToFile "C:\Users\bebebe\Desktop\" + CStr(index) + ".jpg", 2
end with
stream.Close
set stream = nothing
index = index + 1
Next
set images = nothing
set xhr = nothing
set document = nothing