네이트 톡을 PDA 로 클리핑하여 보려고, 파이선 스크립트를 만들었다.
대부분의 게시판은 로그인을 요구하지 않았는데, 일부 게시판은 로그인을 요구하길래, 로그인이
가능한 스크립트를 만들다 보니 쿠키 핸들링이 필요하여 사용한던 내용을 정리해본다.
                               (A)                                        (B)
[브라우저 Client] <---------> [클리핑 스크립트] <---------> [네이트 톡 서버]

클리핑을 위해서는 위와 같은 네트웍 구성도가 된다.
클리핑 스크립트에 아이디/비밀번호 를 넣어 놓기가 좀 그래서, 브라우저 Client에서 쿠키로 스크립트쪽으로
보내도록 했다. (폼 데이터로 보내도록 해도 상관은 없다)

일단 (A)에서 클라이언트에서 보내주는 쿠키를 꺼내 보려면, os.environ["HTTP_COOKIE"] 값을 참조하면된다.

try:
    cookies = os.environ["HTTP_COOKIE"]
except KeyError:
    print "cookie is not set"
else :
    info = cookies.split(';')
    for item in info:
        if 'id' in item:
            login_id = item.split('=')[1]
        if 'passwd' in item:
            login_pw = item.split('=')[1]
(A) 에서 브라우저가 쿠키를 id=userId;passwd=userpw 이렇게 보내게 되면 id/pw 에 userid/passwd 값이
들어온다.

(B)에서 네이트 톡에 로그인 하기 위해서는 POST 로 form data를 전송하고 응답으로 받은 쿠키값을 session으로 이용해야 한다. 이 쿠키세션값을 담아 놓는 놈이 CookieJar 이다.

http 요청을 위해서는 urllib2 를 사용하고 Cookie 핸들링은 cookielib 를 사용한다.

cj = cookielib.CookieJar()
opner = urllib2.build_opener (urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://xso.nate.com/login.jsp")
login_postdata = {'redirect':'http:/www.nate.com', "ID":login_id,"domain":"nate.com","PASSWD":login_pw,"ssl":""} # 로그인 폼 값
params = urllib.urlencode (login_postdata)
r = opener.open("http://xso.nate.com/servlets/LoginServlet", params)           

여기까지하면 id/pw 가 정확하다면 네이트에 로그인 세션이 생성되어 cj에 담기게 된다.
이 이후로 opener 를 이용하면 로그인 세션이 살아 있게 된다.

AND