使用PowerShell确定网页是否包含内容
我创建了一个PHP页面,该页面对一个表进行基本选择,以确定某个特定代理最后一次插入数据的时间。该页面的目的是查看是否有代理在过去48小时内未提交数据。只有在该时间段内未提交数据的代理才会显示在列表上。由于我不希望95%的时间该表中会有条目,因此我需要设置一个警报,仅当PHP页面上存在数据时发送 我正在尝试一个PowerShell脚本来抓取页面,而且效果很好。。。我只需要想办法: 1) 刮页 2) 如果内容存在->发送电子邮件 3) 否则->关闭 我会通过标准的Windows计划任务来安排它。我知道有更简单或更直接的方法可以做到这一点,但我没有在linux web服务器上启用邮件的选项 下面是我的屏幕清理工具:使用PowerShell确定网页是否包含内容,powershell,screen-scraping,Powershell,Screen Scraping,我创建了一个PHP页面,该页面对一个表进行基本选择,以确定某个特定代理最后一次插入数据的时间。该页面的目的是查看是否有代理在过去48小时内未提交数据。只有在该时间段内未提交数据的代理才会显示在列表上。由于我不希望95%的时间该表中会有条目,因此我需要设置一个警报,仅当PHP页面上存在数据时发送 我正在尝试一个PowerShell脚本来抓取页面,而且效果很好。。。我只需要想办法: 1) 刮页 2) 如果内容存在->发送电子邮件 3) 否则->关闭 我会通过标准的Windows计划任务来安排它。我知
$web = New-Object Net.WebClient
$web | Get-Member
$web.DownloadString("http://www.bing.com")
我从以下渠道获得代码:
有什么想法吗?1)刮一下页面
你有了一个好的开始。DownloadString
方法将下载HTML
2) 如果内容存在->发送电子邮件
取决于您要查找的内容。您可以使用-match
或-like
或string方法进行测试。然后放入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.
}
请注意,我使用cmdlet发送电子邮件
3) 否则->关闭
请参见上文。我不明白为什么需要通过屏幕刮取网页来完成此操作。直接从powershell脚本查询数据库。太棒了!这将为我们节省大量的体力劳动!安迪,谢谢你。我正在寻找的内容是任何内容。。。如果页面不是空的,请将页面内容发送给我。对于'-Body bar',我会放'-Body@string'吗?