2

テーブルに対して基本的な選択を行い、特定のエージェントによって最後にデータが挿入された時間を判断する 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/から入手しました。

何か案は?

4

1 に答える 1

2

1) スクレイプページ

あなたは良いスタートを切っています。このDownloadStringメソッドは HTML をダウンロードします。

2) コンテンツが存在する場合 -> メールを送信

お探しのコンテンツによって異なります。比較演算子 -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コマンドレットを使用して電子メールを送信したことに注意してください。

3) その他 -> 閉じる。

上記を参照。

于 2013-06-07T22:29:46.400 に答える