Search code examples
htmlinternet-explorerpowershellform-submitpowershell-3.0

Powershell: Download or Save source code for whole ie page


I have this PS script it logins to a site and then it navigate's to another page.

I want to save whole source for that page. but for some reason. some parts of source code is not coming across.

$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


Here is pastebin of code which is not coming across
http://pastebin.com/Kcnht6Ry


Solution

  • After you navigate, check for the Ready State again instead of using a sleep. The same code that you had will work.

    It appears after running the code, the sleep may not be long enough if the site is slow to load.

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

    It also looks like there is another post regarding this innerHTML converts CDATA to comments It looks like some one created a function on that page where you can clean it up. It would be something like this once you have the function declared in your code

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