gpt4 book ai didi

html - Powershell监视中的Web抓取

转载 作者:行者123 更新时间:2023-12-03 00:54:42 28 4
gpt4 key购买 nike

我希望能够监视打印机的状态网页,并在墨水量低于25%时让脚本向我发送电子邮件。我非常确定可以在Powershell中完成此操作,但是我对如何执行操作感到茫然。

这是有问题的页面HTML:

<h2>Supply Status</h2>

<table class="matrix">
<thead>
<tr>
<th>Supply Information</th>
<th>Status</th>
</tr>
</thead>

<tbody>
<tr>
<td>Black Toner</td>
<td>End of life</td>
</tr>
<tr>
<td>Cyan Toner</td>

<td>Under 25%</td>
</tr>
<tr>
<td>Magenta Toner</td>
<td>Under 25%</td>
</tr>
<tr>

<td>Yellow Toner</td>
<td>Under 25%</td>
</tr>
</tbody>

</table>
<p>

谢谢。

亚当

最佳答案

以@Joey的答案为基础,使用HTML Agility Pack进行一下尝试。

$html = new-object HtmlAgilityPack.HtmlDocument 
$result = $html.Load("http://full/path/to/file.htm")
$colors = $html.DocumentNode.SelectNodes("//table[@class='matrix']//tbody/tr")
$result = $colors | % {
$color = $_.SelectSingleNode("td[1]").InnerText
$level = $_.SelectSingleNode("td[2]").InnerText
new-object PsObject -Property @{ Color = $color; Level = $level; } |
Select Color,Level
}
$result | Sort Level | ft -a
假设您已经将HTML Agility Pack加载到PowerShell中。我的个人资料以以下方式加载:
[System.Reflection.Assembly]::LoadFrom( 
(join-path $profileDirectory HtmlAgilityPack)
+ "\HtmlAgilityPack.dll" ) | Out-Null
使用提供的示例HTML,您的输出如下所示:

至此,您已经有了输出,可以将其通过电子邮件发送出去。

关于html - Powershell监视中的Web抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7725314/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com