我正在尝试在powershell中编写一个脚本,我可以用它在运行查询后从网站上获取HTML。
在我自己的机器上,我可以运行下面没有任何问题,但是当我尝试在Server 2008机器上运行它时,我没有得到Document.Body.InnerHTML命令的输出,所有Document.GetElementById部分都有效没有问题。
$ie = New-Object -com InternetExplorer.Application
$ie.silent = $true
$ie.navigate2("http://www.mxtoolbox.com/")
while($ie.busy) {start-sleep 1}
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_txtToolInput").Value = "mx:domain.co.uk"
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_btnAction").Click()
Start-Sleep -Seconds 10
$ie.Document.body.innerHTML | Out-File "C:\NETESP\MXRecords\MXRecordsHTML.txt" -Encoding ASCII
$ie.Quit()
我是否需要在服务器2008上安装一些东西以使其返回值?
先谢谢
答案 0 :(得分:3)
可能是时间问题?我无法在2008年进行测试,但尝试一下:
$ie = New-Object -com InternetExplorer.Application
$ie.silent = $false
$ie.navigate2("http://www.mxtoolbox.com/")
while($ie.busy) {start-sleep 1}
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_txtToolInput").Value = "mx:domain.co.uk"
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_btnAction").Click()
# wait for the result page
While($ie.LocationURL -eq 'http://www.mxtoolbox.com/') {
Write-Warning "Waiting for result"
Start-sleep 1
}
# grab the table html
$table = $ie.Document.getElementsByTagName('TABLE') | Where-Object {$_.className -eq 'table table-striped table-bordered table-condensed tool-result-table'}
$table.outerHTML | Out-File "C:\NETESP\MXRecords\MXRecordsHTML.txt" -Encoding ASCII
$ie.Quit()