【发布时间】:2014-07-18 09:36:41
【问题描述】:
我需要使用powershell获取网页表格的选定列值。我的代码是
$url1 = "D:\MyPowershell\Html.html"
$ie = New-Object -com internetexplorer.application;
$ie.visible = $true;
$ie.navigate($url1);
while ($ie.Busy -eq $true)
{
Start-Sleep 10;
# $ie.refresh();
}
$a = Get-Content "D:\MyPowershell\Html.html"
$x=($ie.document.getElementsByTagName("tr"))`
| where {
($_.innerText -match "2 - High") -and
$_.innerText -notmatch "Work in Progress" }`
| % {
$number, $priority, $state= $_.children | select -Expand innerText
New-Object -Type PSObject -Property @{
'Number' = $number
'Priority' = $priority
'State' = $state
}
} | select Number, Priority|Export-csv 'D:\Html.csv' -NoType -Delimiter "`t"
这是我创建的网页。没有其他表格网页的HTML代码是:
<html>
<head>
</head>
<body>
<table>
<thead>
<tr>
<th name="number"> Number</th>
<th name="priority">Priority</th>
<th name="state">State</th>
</tr>
</thead>
<tbody>
<tr>
<td name="check_task" class="list_checkbox ">INC0811168</td>
<td class="vt" title="" style="background-color:orange">2 - High</td>
<td style="" class="vt" title="">Assigned</td>
</tr>
<tr>
<td name="check_task" class="list_checkbox ">INC081rr68</td>
<td class="vt" title="">0 - None</td>
<td style="" class="vt" title="">Work in Progress</td>
</tr>
</tbody>
</table>
</body>
</html>
使用此编辑后的代码,我没有收到任何错误,但值未显示在 csv 中,并且仅创建了“Html”文件。相反,我在记事本中获得了一些编码文本。这里 INC0811168、'2 -High' 和 'Assigned' 是单独的字段。我需要在单独的列值之间获取带有空格的数据。我需要过滤数据并且只需要获取“INC****”和“2-High”列。检索到的数据导出到 csv。我该怎么做?
【问题讨论】:
标签: powershell csv