ブログの生死を判定する

たとえば、特定ジャンルの有名人がやっているブログが、ちゃんと今も存在しているか調べたいと思うことがあります。
そこで、主要なブログサービスでアクセスしようとしたアカウントが削除あるいは存在しなかった場合、HTTPステータスとして何が返されるか調べてみました。
こんな感じのスクリプトVBScript)を使いました。

site = WScript.Arguments.item(0)
strURL = WScript.Arguments.item(1)

On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If (Err.Number <> 0) Then
        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    End If
On Error GoTo 0

On Error Resume Next
oHttp.Open "GET", strURL, False
oHttp.Send

If Err.Number <> 0 Then
    nStatus = Err.Description
Else
    nStatus = oHttp.Status
End If
On Error Goto 0

WScript.Echo site & "," & nStatus
Set oHttp = Nothing

その結果

サイト名 返されたHTTPステータス
FC2ブログ アクセスが拒否されました。
Yahoo!ブログ 200
blogger 404
dtiブログ アクセスが拒否されました。
gooブログ 200
seesaaブログ 400
so-netブログ 400
はてなダイアリー 404
アメブロ 200
ヤプログ アクセスが拒否されました。
ライブドアブログ 404

ステータスコードが得られなかったFC2・DTIブログ・ヤプログでは、「msxml3.dll: アクセスが拒否されました」というエラーが返されてしまいました。やりかたが悪いのか、サイト側のせいなのか、よく分からなかったです。ただ、存在するアカウントを指定してやればちゃんと「200」が戻されますから、アカウントが生きているか死んでいるかの判定はできると思います。

200 OKを戻すサイト

これらのサイトは存在しないアカウントのURLへアクセスしても、「200 OK」が戻されます。「200」以外が返されたらアカウントが削除されている可能性がある、という判定はできないことになるから、サイトごとに対応しないといけません。
この結果から分かることは、HTTPステータスだけで生死判定するのは難しいというか、不完全な結果を多く戻しかねないということですかね。残念です。