$webClient = new-object System.Net.WebClient
$webClient.Headers.Add("user-agent", "PowerShell Script")
$keyword = read-host "Keyword:"
$info = get-content c:\users\dell\desktop\urls.txt

foreach ($i in $info) {
    $output = ""
    $output = $webClient.DownloadString($i)

    if ($output -like "*$keyword*") {
        $b = Get-Date
        $ButtonType = [System.Windows.MessageBoxButton]::Ok
        $MessageboxTitle = “Open Source Information Collection”
        $Messageboxbody = "Detected the keyword $keyword at $b"
        $MessageIcon = [System.Windows.MessageBoxImage]::Asterisk
        [System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$messageicon)
    }

}

Код получает содержимое с различных веб-сайтов, перечисленных в файле urls.txt, и выполняет поиск по определенному ключевому слову.

Если ключевое слово найдено, пользователь получает уведомление.

Однако то, что мне не хватает, - это то, что программа не только уведомляет пользователя о том, что ключевое слово найдено в соответствии с контентом, но и сообщает, с какого веб-сайта произошло содержимое, соответствующее ключевому слову.

Идеи?

1 ответ1

1

Я думаю, что URL, который вы ищете, находится в $ i.

[System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$messageicon,$i)

Из вашего кода вы назначаете $ i из $ info, поэтому $ i должен быть единственным URL, который затем проверяется на наличие ключевого слова.

Не запустив код и не увидев форматирование, вам может понадобиться добавить $ i в $ messageboxbody. Например

$Messageboxbody = "Detected the keyword $keyword at $b from URL $i"

Надеюсь это поможет.

Спасибо, Тим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .