No.5252への回答 UWSC掲示板記事一覧(レス数付き!)を表示する

No.5252より
一覧がばばーっと出てきます
選んでOKすると個別の記事ページに飛びます (規定のブラウザで開かれるはず)
複数選んでもいいよ

hashtbl list
o = createoleobj("Msxml2.XMLHTTP.6.0")

boarduri = "http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&start="
for i = 0 to 110 step 10
    fukidasi("記事一覧取得中: " + i)
    o.open("GET", boarduri+i, FALSE)
    o.send()
    getTitleList(o.ResponseBody, list)
next
fukidasi()
n = slctbox(SLCT_NUM or SLCT_LST, 0, "記事一覧", list)
if n = -1 then exit
n = split(n, "<#TAB>", TRUE, TRUE)
pageuri = "http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no="
sh = createoleobj("WScript.Shell")
for i = 0 to resize(n)
    sh.run(pageuri + list[n[i], HASH_KEY])
next


function getTitleList(ResponseBody, var hash[])
    doc = createoleobj("htmlfile")
    doc.write(getTextFromResponseBody(ResponseBody))
    forms = doc.getElementsByTagName("form")
    for i = 0 to getoleitem(forms) - 1
        form = ALL_OLE_ITEM[i]
        e = form.getElementsByTagName("input")
        if e.length = 5 then
            smalls = form.getElementsByTagName("small")
            user = smalls.item[0].innerText
            res = (smalls.length - 3) / 2
            for j = 0 to e.length - 1
                select e.item[j].name
                    case "resno"
                        key = e.item[j].value
                    case "psubj"
                        title =  + e.item[j].value
                selend
            next
            hash[key] = title + "(" + res + ") " + user
        endif
    next
    result = length(hash)
fend

function getTextFromResponseBody(ResponseBody)
    s = createoleobj("ADODB.Stream")
    s.Open()
    s.Type = 1
    s.Write(ResponseBody)
    s.Position = 0
    s.Type = 2
    s.CharSet = "Shift-JIS"
    result = s.ReadText()
    s.Close()
fend

実験しながら書いてたらなんか出来たっぽいという流れなので変数名とか変だけど気にしないでくださいよ!
取得記事数とかも下に掲示板の下に120件て書いてあったから決め打ちです
レス件数とかsmall要素の数から計算しててひどいぞ
手抜きでごめんなさい

追記 (2014/03/06)
ResponseTextだと化けて困るということでResponseBodyをSJISにするという一手間が加わったんだけど
decode(ResponseBody, CODE_BYTEARRAY) でいいよねこれきっと多分

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中