我创建了一个PHP页面,它对表进行基本选择,以确定特定代理程序上次插入数据的时间。该页面的目的是查看是否有任何代理在过去48小时内未提交数据。只有在该时间段内未提交数据的代理才会显示在列表中。由于我不希望在95%的情况下在此表中有条目,我需要设置一个警报,仅在该PHP页面上存在数据时发送。
我正在尝试使用PowerShell脚本来抓取页面,而且运行良好......我只需要弄清楚如何: 1)刮擦页面 2)如果内容存在 - >发送电子邮件 3)ELSE - >关闭。
我会通过标准的Windows计划任务安排它。我知道有更容易或更直接的方法来做到这一点,但我没有选择在linux web服务器上启用邮件...
以下是我的屏幕抓取工具:
$web = New-Object Net.WebClient
$web | Get-Member
$web.DownloadString("http://www.bing.com")
我从以下代码获得了代码:http://learn-powershell.net/2011/02/11/using-powershell-to-query-web-site-information/
有什么想法吗?
答案 0 :(得分:2)
1)Scrape Page
你有个好的开始。 DownloadString
方法将下载HTML。
2)如果内容存在 - >发送电子邮件
取决于您要查找的内容。您可以使用comparison operators -match
或-like
或字符串方法Contains()
进行测试。然后放入if / else块,例如
$string = $web.DownloadString("http://somewebsite")
if ($string -match "regex_here") {
Send-MailMessage -SmtpServer your_server -To to.address@domain -From from.address@domain -Subject foo -Body bar
} else {
# not necessary unless there is something you want to execute here.
}
注意我使用Send-MailMessage cmdlet发送电子邮件。
3)ELSE - >关闭。
见上文。