※公開してから気が付きましたが、すでに民進党のHPに一覧ページができてましたね。
※誰が最後に一人だけ残るのか、それだけが気がかりです。
※Office365でメールを送ります ←ココ大事
$ErrorActionPreference = [System.Management.Automation.ActionPreference]::Stop
$mycreds = Get-Credential -Message "Input your mail account and password."
$PageURLs = "https://www.dpj.or.jp/members/house/衆議院","https://www.dpj.or.jp/members/house/参議院"
function SendMail( $Message ) {
Send-MailMessage -To $mycreds.UserName `
-From $mycreds.UserName -Subject "DPJ parliaments number change."`
-SmtpServer "smtp.office365.com" -Credential $mycreds -UseSsl -Port "587" `
-Body $Message `
-ErrorAction SilentlyContinue
}
while($true)
{
foreach($PageURL in $PageURLs)
{
try {
$secWait = 30 #(Get-Random -Minimum 60 -Maximum 90)
Write-Host ("Get Page {0} after {1} sec." -f $PageURL, $secWait)
for ($a = $secWait; $a -ge 0; $a-- ) {
Write-Progress -Activity "Waiting..." -Status ("last {0} sec." -f $a)
Start-Sleep -Seconds 1
}
Write-Progress -Activity "Waiting..." -Completed
$HTML = Invoke-WebRequest -Uri $PageURL
$ParsedHtml = $HTML.ParsedHtml
$MemberCount = $ParsedHtml.getElementsByClassName("col-md-4").Length
Write-Host ("Get {0} member at Page {1}." -f $MemberCount, $PageURL)
if($MemberCount -ne 24)
{
SendMail -Message ("Member Count : {0} in {1}" -f $MemberCount, $PageURL)
exit
}
} catch [Exception] {
Write-Host ("Error at getting Page {0}." -f ($PageURL))
Write-Error $Error[0]
SendMail -Message ("Erroe at {0}\n\r{1}" -f $PageURL, $Error[0])
Start-Sleep -Seconds (5 * 60)
exit
}
}
}