Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PowerShell确定网页是否包含内容_Powershell_Screen Scraping - Fatal编程技术网

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

使用PowerShell确定网页是否包含内容,powershell,screen-scraping,Powershell,Screen Scraping,我创建了一个PHP页面,该页面对一个表进行基本选择,以确定某个特定代理最后一次插入数据的时间。该页面的目的是查看是否有代理在过去48小时内未提交数据。只有在该时间段内未提交数据的代理才会显示在列表上。由于我不希望95%的时间该表中会有条目,因此我需要设置一个警报,仅当PHP页面上存在数据时发送 我正在尝试一个PowerShell脚本来抓取页面,而且效果很好。。。我只需要想办法: 1) 刮页 2) 如果内容存在->发送电子邮件 3) 否则->关闭 我会通过标准的Windows计划任务来安排它。我知

我创建了一个PHP页面,该页面对一个表进行基本选择,以确定某个特定代理最后一次插入数据的时间。该页面的目的是查看是否有代理在过去48小时内未提交数据。只有在该时间段内未提交数据的代理才会显示在列表上。由于我不希望95%的时间该表中会有条目,因此我需要设置一个警报,仅当PHP页面上存在数据时发送

我正在尝试一个PowerShell脚本来抓取页面,而且效果很好。。。我只需要想办法: 1) 刮页 2) 如果内容存在->发送电子邮件 3) 否则->关闭

我会通过标准的Windows计划任务来安排它。我知道有更简单或更直接的方法可以做到这一点,但我没有在linux web服务器上启用邮件的选项

下面是我的屏幕清理工具:

$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'吗?