使用PowerShell确定网页是否包含内容

时间:2013-06-07 21:36:57

标签: powershell screen-scraping

我创建了一个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/

有什么想法吗?

1 个答案:

答案 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 - >关闭。

见上文。