【发布时间】:2016-09-12 07:43:04
【问题描述】:
我想从网站下载图像以检查网站上通过 AJAX 加载的其他动态信息。由于该站点使用 AJAX 加载其他信息,因此我无法使用 invoke-webrequest,因为 ajax 信息未加载,或者至少我不知道如何触发它。出于这个原因,我决定使用 Application.internetexplorer 的 com 对象。
这可以遍历和触发 javascript,但我不知道如何保存 IE 窗口中显示的图片。我尝试通过 src 路径下载图像,但如前所述,图像在每次请求时都会从原始状态略有变化。我无法从 $ie.document.images 或任何其他路径中看到“保存”方法。作为最后的努力,我尝试将.png 文件作为innerHTML 或outerHTML 等输出,但也都失败了。
当我使 com 对象可见时,我可以看到图片。必须有某种方法来获取已在我的计算机上显示的图像。有谁知道我怎么能做到这一点?
不确定它是否有帮助,但这是我目前的代码:
$url = "https://somesite.com"
$ie = New-Object -com internetexplorer.application
$ie.navigate($url)
while($ie.ReadyState -ne 4) {start-sleep -seconds 1}
$ie.visible = $true
$doc = $ie.Document
$firstImage= $doc.IHTMLDocument3_getElementById('images01')
$secondImage = $doc.IHTMLDocument3_getElementById('images02')
$thirdImage = $doc.IHTMLDocument3_getElementById('images03')
#how can I save firstImage as .png?
【问题讨论】:
标签: powershell com