<# Set-StrictMode -Version Latest $queryUrl = "http://partsurfer.hp.com/Search.aspx?searchText=" $ie = new-object -com "InternetExplorer.Application" $ie.Navigate("http://partsurfer.hp.com/Search.aspx?searchText=CNU1051FZC") #This SN should return 37 orderable parts (ending in -001) while ($ie.Busy){ sleep 1 } $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblSerialNumber").outerText $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblProductNumber").outerText $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblDescription").outerText #$ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_gridSpareBOM").innerText -split "`n" | Where-Object { $_[6] -eq "-" } | sort #$ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_gridSpareBOM").innerText -split "`n" | Where-Object { $_ -like "??????-001*" } | sort ($ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_gridSpareBOM").innerText -split "`n" | Where-Object { $_ -like "??????-001*" } | sort) | ForEach-Object { $tmp = $_ -split " ", 2; return "$($tmp[0]) ||| $($tmp[1])" } #> $queryUrl = "http://partsurfer.hp.com/Search.aspx?searchText=" $htClient = New-Object System.Net.Webclient $htData = $htClient.DownloadString("$($queryUrl)CNU1051FZC") #Clean HTML so it can be parsed into XML $htData = -join $htData[$htData.IndexOf("")+6)] $htData = $htData -replace '(?sx:)' $htData = $htData -replace '(?sx:)' $htData = $htData -replace ' & ', " and " <# will parse without these cleanup steps $htData = $htdata -replace '^\s+$', " " $htData = $htData -replace "&\w{2,6};" $htData = $htData -replace '' $htData = $htData -replace '(?sx:)' $htData = $htData -replace '(?sx:)' $htData = $htData -replace '(?sx:)' end unused cleanup#> $xmlData = [xml]$htData #($htData | select-string -pattern '(?sx:)' -allmatches).matches #$htData -split "]*>" | %{"`n|||||`n$(-join $_[1..100])....$(-join $_[-100..-1])"} #($htData -split "]*>")[1] <# $htClient = New-Object System.Net.Webclient $htClient.Headers.Add("Cookie", "Country=United%20States") $htClient.DownloadString("http://partsurfer.hp.com/SetCountry.aspx?cpric=United%20States") | Out-Null $htClient.Headers.Add("Cookie", ($htClient.ResponseHeaders["Set-Cookie"] -split "; ")[0] ) #$htClient.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "Country=United%20States") <#$cookieJar = New-Object System.Net.CookieContainer $req = [Net.WebRequest]::Create("http://partsurfer.hp.com/") $req.CookieContainer = $cookieJar $req.GetResponse() | Out-Null $req = [Net.WebRequest]::Create("http://partsurfer.hp.com/SetCountry.aspx?cpric=United%20States") $req.CookieContainer = $cookieJar $req.GetResponse() | Out-Null#><# $savePath = Join-Path $env:USERPROFILE hpPcInfo-Cache if ( !( Test-Path $savePath ) ){ $null = New-Item -Type "Directory" -Path $savePath } "Downloading data from HP PartSurfer (http://partsurfer.hp.com)..." #$null = $htClient.DownloadString("http://partsurfer.hp.com/SetCountry.aspx?cpric=United%20States") #$htXmlData = [xml]$htClient.DownloadString($queryUrl + $args[0]) $htXmlData = [xml]$htClient.DownloadString("$($queryUrl)CNU1051FZC") #> <# Temp Junk $htClient.Headers.Set("Cookie", $cookieJar.GetCookies($req.RequestUri)) $htClient.Headers.Get("Cookie") $ie = new-object -com "InternetExplorer.Application" $ie.Navigate("http://partsurfer.hp.com/Search.aspx?searchText=CNU1051FZC") $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblSerialNumber").outerText $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblProductNumber").outerText $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_lblDescription").outerText $ie.Document.getElementByID("ctl00_BodyContentPlaceHolder_gridSpareBOM") #>