アメーバ専用のログイン+ファイル取得サンプル
IDとパスワードは入力した上でご利用ください。(11行目)
62行目以降をいじくることでアメーバ内のいろんなファイルが取得可能です。
#include "hspinet.as"
#include "hspsock.as"
//アメーバ専用です
netinit;初期化
if stat!=0:dialog "err.":end
//IDとパスワードを元にサーバーにcookieを発行してもらう
//以下にアメーバのIDとパスを入れておきます。(HSPSOCK使用)
id="":password=""
sdim res,4096
sockopen 0,"www.ameba.jp",80
if stat : dialog "sock err. ["+stat+"]":end
header="POST /login.do?amebaId="+id+"&password="+password+" HTTP/1.0\n
header+="User-Agent: HSP ver3.0\n"
header+="Cookie: GID=18\n\n"
sockput header
if stat!=0:dialog "send err. ["+stat+"]":end
buf="":a=""
b=0:sz=0
*wloop
await 0
sockget a,64
if stat : dialog "socket error" : end
b=peek(a,0):if b=0 : goto *sdok
buf+=a
sz+=64
if sz>30000 : dialog "受信サイズがオーバーしました。" : goto *sdok
goto *wloop
*sdok
//instrでHTTP 302が返っているかどうか調べる
notesel buf:buf2=""
noteget buf2,0
if instr(buf2,0,"302")=-1:dialog "ログインに失敗しました。":end
//HTTPヘッダからcookieのみを取り出す
string="Set-Cookie: JSESSIONID="
tmp=instr(buf,0,string)
if tmp=-1:dialog "セッションの取得に失敗しました。":end
tmp2=instr(buf,tmp+strlen(string),";")
jsessionid=strmid(buf,tmp+strlen(string),tmp2)
string="Set-Cookie: N="
tmp=instr(buf,0,string)
if tmp=-1:dialog "ログイン情報の取得に失敗しました。[1]":end
tmp2=instr(buf,tmp+strlen(string),";")
n=strmid(buf,tmp+strlen(string),tmp2)
string="Set-Cookie: I="
tmp=instr(buf,0,string)
if tmp=-1:dialog "ログイン情報の取得に失敗しました。[2]":end
tmp2=instr(buf,tmp+strlen(string),";")
i=strmid(buf,tmp+strlen(string),tmp2)
netagent "www.ameba.jp" //エージェントの設定
netheader "Cookie: JSESSIONID="+jsessionid+";N="+n+";I="+i+"\n\n"
//以下をいじることで、アメーバ内ファイルでしたら自由に取得可能です。
//試しにトップページを取得してみます。
neturl "http://www.ameba.jp/"
netdlname "index.html"
netload ""