' mixilog.vb Imports System Imports System.IO Imports System.Net Imports System.Text Imports System.Collections Imports Microsoft.VisualBasic Public Class MixiTool Dim Shared encoder As Encoding = Encoding.GetEncoding("EUC-JP") Shared Function HttpGet(url As String, cc As CookieContainer) As String ' リクエストの作成 Dim req As HttpWebRequest _ = CType(WebRequest.Create(url), HttpWebRequest) req.CookieContainer = cc Dim res As WebResponse = req.GetResponse() ' レスポンスの読み取り Dim resStream As Stream = res.GetResponseStream() Dim sr As StreamReader = new StreamReader(resStream, encoder) Dim result As String = sr.ReadToEnd() sr.Close() resStream.Close() Return result End Function Shared Function HttpPost(url As String, vals As Hashtable, cc As CookieContainer) As String Dim param As String = "" For Each k As String In vals.Keys param += String.Format("{0}={1}&", k, vals(k)) Next Dim data As byte() = Encoding.ASCII.GetBytes(param) ' リクエストの作成 Dim req As HttpWebRequest _ = CType(WebRequest.Create(url), HttpWebRequest) req.Method = "POST" req.ContentType = "application/x-www-form-urlencoded" req.ContentLength = data.Length req.CookieContainer = cc ' ポスト・データの書き込み Dim reqStream As Stream = req.GetRequestStream() reqStream.Write(data, 0, data.Length) reqStream.Close() Dim res As WebResponse = req.GetResponse() ' レスポンスの読み取り Dim resStream As Stream = res.GetResponseStream() Dim sr As StreamReader = new StreamReader(resStream, encoder) Dim result As String = sr.ReadToEnd() sr.Close() resStream.Close() Return result End Function Shared Function Login(id As String, password As String, cc As CookieContainer) As String Dim vals As Hashtable = new Hashtable() vals("next_url") = "/home.pl" vals("email") = id vals("password") = password Dim loginUrl As String = "http://mixi.jp/login.pl" Return HttpPost(loginUrl, vals, cc) End Function Shared Function ReadLog(cc As CookieContainer) As String Dim showlog As String = "http://mixi.jp/show_log.pl" Return HttpGet(showlog, cc) End Function Shared Sub Main() Dim id As String = "あたなのメールアドレス" Dim password As String = "あなたのパスワード" Dim cc As CookieContainer = new CookieContainer() Login(id, password, cc) Dim html As String = ReadLog(cc) ' ログ部分の切り出し(簡易版) Dim lines As String() = html.Split(vbLf) For Each line As String In lines If line.IndexOf("年") >= 0 Dim t As String() = line.Split(New Char() {"<", ">"}) Console.WriteLine(t(0) + t(2)) End If Next ' 出力例: ' 2005年07月13日 16:54 XXXX ' 2005年07月12日 05:43 YY ' 2005年07月11日 22:50 ZZZ ' …… End Sub End Class ' コンパイル方法:vbc /r:System.dll mixilog.vb