$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
我认为您正在寻找的 URL 位于 $i。
[System.Windows.MessageBox]::Show($Messageboxbody,$MessageboxTitle,$ButtonType,$messageicon,$i)
从您的代码来看,您正在从 $info 中分配 $i,因此 $i 应该是随后检查关键字的单个 URL。
由于尚未运行代码并查看格式,您可能需要将 $i 添加到 $messageboxbody。例如
$Messageboxbody = "Detected the keyword $keyword at $b from URL $i"
希望这可以帮助。
谢谢,蒂姆。