0
我想保存一个网页(ASP),就像IE将它保存为文本文件一样。PowerShell保存IE网页文本
我发现this和尝试:
$ie=New-Object -ComObject InternetExplorer.Application
$ie.Navigate($Page)
$ie.Document.execCommand("SaveAs", $false, "1.txt")
但我得到的错误:
You cannot call a method on a null-valued expression.
At line:3 char:1
+ $ie.Document.execCommand("SaveAs", $false, "1.txt")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
我不知道我在做什么错。
如果我尝试通过
$web = New-Object Net.WebClient
$web | Get-Member
$web.DownloadString($Page) | Out-File "test.html"
我得到一个页面捕捉页面,但它是由网站让我知道该链接是无效的创建了一个错误页面,所以它实际上只如果我发现页面通过IE会话加载它。
我真的只需要自动捕获IE页面作为文本文件,我希望不使用SendKey
函数。任何人都可以协助
也许你不等待IE来完成加载页面和解析HTML并生成一个DOM,所以没有.Document呢。您通常需要'.Navigate(..)'然后'while($ ie.Busy - 或$ ie.ReadyState -ne 4){start-sleep -Milliseconds 100}'等待它加载内容,之前用它做任何事情。 – TessellatingHeckler
谢谢。也许就是这样,但现在它正在运行/挂起。不应该只有1/10秒的延迟吗? – Nate
@TessellatingHeckler我也在导航和execCommand之间尝试了'Start-Sleep 10',但得到了同样的错误。添加你建议的线路仍然会永远挂起。想法? – Nate