ブログの生死を判定する
たとえば、特定ジャンルの有名人がやっているブログが、ちゃんと今も存在しているか調べたいと思うことがあります。
そこで、主要なブログサービスでアクセスしようとしたアカウントが削除あるいは存在しなかった場合、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」が戻されますから、アカウントが生きているか死んでいるかの判定はできると思います。