我有一个页面,其中包含我需要的内容。这是一个内部网站,所以我无法提供URL。要访问该页面,首先要有一个登录页面。如果我登录Internet Explorer的第一页,我可以运行
START "http://whatever.com/pageIwant.asp"
并在新标签中查看我想要的页面,但如果我尝试
$webreq = Invoke-WebRequest "http://whatever.com/pageIwant.asp"
$webreq.Content | Out-File "C:\pageIwant.htm"
或
(New-Object System.Net.WebClient).DownloadFile( "http://whatever.com/pageIwant.asp", 'C:\pageIwant.htm' )
或
$web = New-Object Net.WebClient
$web | Get-Member
$content = $web.DownloadString("http://whatever.com/pageIwant.asp")
我总是得到同样的错误:
Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (500) Internal Server Error." At line:1 char:1 + (New-Object System.Net.WebClient).DownloadFile( "http://pdt.inside.up ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebExceptionIf I use the `Invoke-WebRequest
在登录页面上,我可以下载页面,这让我相信IE的新实例要求我再次登录到第一页,然后才能进入我想要的页面。
我能想到的最好的方法是为PowerShell寻找一种方法,使用IE的开放实例,我将页面拉起并保存,或以某种方式保存页面,因为我打开它{{ 1}}命令。
这两种选择都可以吗?我做错了吗?任何帮助表示赞赏。