2

我有這個PS腳本,它登錄到一個網站,然後它導航到另一個頁面。Powershell:下載或保存整個ie頁面的源代碼

我想保存該頁面的整個源代碼。但由於某種原因。源代碼的某些部分沒有出現。

$username = "myuser" 
$password = "mypass" 
$ie = New-Object -com InternetExplorer.Application 
$ie.visible=$true 
$ie.navigate("http://www.example.com/login.shtml") 
while($ie.ReadyState -ne 4) {start-sleep -m 100} 
$ie.document.getElementById("username").value = "$username" 
$ie.document.getElementById("pass").value = "$password" 
$ie.document.getElementById("frmLogin").submit() 
start-sleep 5 
$ie.navigate("http://www.example.com/thislink.shtml") 
$ie.Document.body.outerHTML | Out-File -FilePath c:\sourcecode.txt 


這裏是代碼引擎收錄未跨越
http://pastebin.com/Kcnht6Ry

+0

粘貼似乎是私人的。 –

+0

對不起,現在請檢查一下。我對此做了更多的研究。它忽略了'// <![CDATA [' – user206168

回答

3

未來您瀏覽後,檢查就緒狀態,而不是再次使用睡眠。你有相同的代碼將工作。

運行代碼後出現,如果站點加載緩慢,睡眠可能不夠長。

while($ie.ReadyState -ne 4) {start-sleep -m 100} 

它也像有關於另一張貼此 innerHTML converts CDATA to comments它看起來像有人創建了一個頁面,您可以清理上的功能。這將是這樣的事情,一旦你有你的代碼中聲明的功能

htmlWithCDATASectionsToHtmlWithout($ie.Document.body.outerHTML) | Out-File -FilePath c:\sourcecode.txt 
+0

抱歉,但頁面加載和一切。我已經看到了。問題在於// <![CDATA [' – user206168

+0

非常感謝。但我仍然通過使用您發佈的功能來獲取錯誤。 '在C:\ Users \ mmmm \ Desktop \ new.ps1:4 char:5 + var ATTRS =「(?:[^> \」\] | \「[^ \」] * \「| \'^\'] * \')*「,' – user206168

+0

標記爲已解決,但仍需要修復該代碼中的錯誤。 – user206168