コマンドラインからHTMLコンテンツ取得するスクリプト

タイトルの通りなのですが、コマンドラインからHTMLコンテンツ取得するVBScript 作ったのですが、単につくるだけでは芸が無いのと、今後の拡張を考えて、wget というクラスを1つ作り、それを継承する形ではてなやアマゾンのwebサービス利用できるようなものを目指してにしていこうかと思っています。

で、作りかけだけど、wget クラスは以下のような感じに。
Class Wget
Private my_url
Private objHTTP
Private outputStream
Private html
Private ADTYPETEXT
Private ADTYPEBINARY
Private code
Private my_htmlContents 'HTMLのBody要素全体を格納
Private objRe

Private Sub Class_Initialize()
ADTYPETEXT = 2
ADTYPEBINARY = 1
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
Set outputStream = CreateObject("ADODB.Stream")
code = "Shift_JIS"
my_htmlContents = ""
End Sub

Property Let Url(address)
my_url = address
End Property

Property Let CharCode(str)
code = str
End Property

Public Sub Print()
WScript.Echo my_htmlContents
End Sub

Public Sub GetCommentElement()
Set objRe = new RegExp
objRe.Pattern = ""
objRe.Global = True
objRe.ignoreCase = True
Set matches = objRe.Execute(my_htmlContents)
End Sub

Public Sub Fetch()
' エキブロの仕様のため、下記のオープンは英語のOpenに置換して使ってください
Call objHTTP.オープン("GET",my_url,False)
objHTTP.Send()
html = objHTTP.responseBody

'ADODB.Streamを利用してHTMLコンテンツ取得
outputStream.Type = ADTYPEBINARY
outputStream.オープン()
outputStream.Write(html)
outputStream.Position = 0

outputStream.Type = ADTYPETEXT
outputStream.Charset = code
my_htmlContents = outputStream.ReadText()
outputStream.Close()
End Sub

End Class
で、このクラスをつかってwsfファイルを作成します。エキブロの仕様のため、一部のタグがつかえなかったりするので、必要と思われる所だけピックアップ

Dim objWget
Set objWget = New wget

Dim colArgs,tempData
Set colArgs = WScript.Arguments
If ChkArgs(colArgs) Then
objWget.url = colArgs(0)
Wscript.Echo "OK"
objWget.CharCode = "UTF-8"
objWget.Fetch()
objWget.Print
End if

Function ChkArgs(colArgs)
If colArgs.Count <>1 then
Wscript.StdErr.WriteLine("引数指定エラー")
ChkArgs = False
Wscript.Quit()
Else
ChkArgs = True
End if

End Function

Set objWget = Nothing
使うときには、コマンドラインで以下のように入力すれば、OK。
cscript wget.wsf //nologo http://b.hatena.ne.jp/h5y1m141/vbs/
[PR]
by h5y1m141 | 2007-01-07 20:11
<< やわらかーい砂肝の料理 紺碧 >>