PythonでTwitterにログインするプログラムを書いていたら、ブラウザでの認証にCAPTCHAが出現した件

PythonからTwitterにログインしてpostしたりfollowingを確認したりするプログラムを書いてみようとしたわけなんですが、数回はうまくいったものの以降突如としてCAPTCHAが現れ玉砕。さて困った。ついったー的にはOAuth使えや!!!って感じなんでしょうか。

# coding: utf-8

# login to twitter

import urllib
import urllib2
import cookielib

def build_request(path, data=None):
    req = urllib2.Request("https://twitter.com" + path)
    if data:
        req.add_data(urllib.urlencode(data))
    # Firefox 3.6.3 for Windows
    req.add_header("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)")
    return req
    
    
class TwitterLoginHandler(object):
    def __init__(self, username, password):
        self.username = username
        self.password = password
        
        self.build_opener()
        
    def build_opener(self):
        self.opener = urllib2.build_opener()
        # cookie
        self.opener.add_handler(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
    def login(self):
        # /sessions に 以下のパラメータを送信
        #   - session[username_or_email] : username
        #   - session[password]          : password
        data = {
            "session[username_or_email]": self.username,
            "session[password]": self.password,
        }
        conn = self.opener.open(build_request("/sessions", data))
        cont = conn.read()
        f = open('login.html', 'w')
        f.write(cont)
        f.close()
        conn.close()
    
    def logout(self):
        # /sessions/destroy
        self.opener.open(build_request('/logout'))
    
    def request(self, req):
        if type(req) == str:
            return self.opener.open("https://twitter.com" + req)
        else:
            return self.opener.open(req)
        


username = raw_input("username: ")
password = raw_input("password: ")
hand = TwitterLoginHandler(username, password)
hand.login() 

conn = hand.request("/following")

f = open("out.html", "w")
f.write(conn.read())
f.close()

hand.logout()