this is just a kwic-style layout for twitter search. multiple colors for multiple terms. focus is on text. to skim many tweets and get a feel for the typical usages of a term or phrase. by brendan. i'm sorry if it crashes; sometimes twitter ratelimits us.   sample queries: kenneth jindal obama smart


--> -->
 
 
<class 'urllib2.HTTPError'>
Python 2.7.6: /usr/bin/python
Wed Jun 10 21:38:37 2026

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /home/www/default/kwictwit/index.cgi in ()
     68 print "<table>"
     69 pages = range(1,16) if form.getvalue('lots') else [1,2]
=>   70 for r in twi.yield_results(url, pages=pages):
     71   #splitter = q.strip().split()[0]
     72   #parts = r['text'].split(splitter)
r undefined, twi = <module 'twi' from '/home/www/default/kwictwit/twi.py'>, twi.yield_results = <function yield_results>, url = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100', pages = [1, 2]
 /home/www/default/kwictwit/twi.py in yield_results(base_url='http://search.twitter.com/search.json?q=obama%20smart&rpp=100', pages=[1, 2])
     24   #for page in [1]:
     25     #print>>sys.stderr, "page %d" % page
=>   26     json = fetch(url + "&page=%d" % page)
     27     j = simplejson.load(json)
     28     if not j['results']: break
json undefined, global fetch = <function fetch>, url = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100', page = 1
 /home/www/default/kwictwit/twi.py in fetch(url='http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1')
     17     try: return urllib2.urlopen(url)
     18     except urllib2.HTTPError: pass
=>   19   return urllib2.urlopen(url)
     20 
     21 def yield_results(base_url, pages=range(1,16)):
global urllib2 = <module 'urllib2' from '/usr/lib/python2.7/urllib2.pyc'>, urllib2.urlopen = <function urlopen>, url = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1'
 /usr/lib/python2.7/urllib2.py in urlopen(url='http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1', data=None, timeout=<object object>)
    125     if _opener is None:
    126         _opener = build_opener()
=>  127     return _opener.open(url, data, timeout)
    128 
    129 def install_opener(opener):
global _opener = <urllib2.OpenerDirector instance>, _opener.open = <bound method OpenerDirector.open of <urllib2.OpenerDirector instance>>, url = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1', data = None, timeout = <object object>
 /usr/lib/python2.7/urllib2.py in open(self=<urllib2.OpenerDirector instance>, fullurl='http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1', data=None, timeout=<object object>)
    408         for processor in self.process_response.get(protocol, []):
    409             meth = getattr(processor, meth_name)
=>  410             response = meth(req, response)
    411 
    412         return response
response = <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, meth = <bound method HTTPErrorProcessor.http_response of <urllib2.HTTPErrorProcessor instance>>, req = <urllib2.Request instance>
 /usr/lib/python2.7/urllib2.py in http_response(self=<urllib2.HTTPErrorProcessor instance>, request=<urllib2.Request instance>, response=<addinfourl at 4129872140L whose fp = <socket._fileobject object>>)
    521         if not (200 <= code < 300):
    522             response = self.parent.error(
=>  523                 'http', request, response, code, msg, hdrs)
    524 
    525         return response
request = <urllib2.Request instance>, response = <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, code = 520, msg = '<none>', hdrs = <httplib.HTTPMessage instance>
 /usr/lib/python2.7/urllib2.py in error(self=<urllib2.OpenerDirector instance>, proto=520, *args=({301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, 'default', 'http_error_default', <urllib2.Request instance>, <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, 520, '<none>', <httplib.HTTPMessage instance>))
    446         if http_err:
    447             args = (dict, 'default', 'http_error_default') + orig_args
=>  448             return self._call_chain(*args)
    449 
    450 # XXX probably also want an abstract factory that knows when it makes
self = <urllib2.OpenerDirector instance>, self._call_chain = <bound method OpenerDirector._call_chain of <urllib2.OpenerDirector instance>>, args = ({301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, 'default', 'http_error_default', <urllib2.Request instance>, <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, 520, '<none>', <httplib.HTTPMessage instance>)
 /usr/lib/python2.7/urllib2.py in _call_chain(self=<urllib2.OpenerDirector instance>, chain={301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, kind='default', meth_name='http_error_default', *args=(<urllib2.Request instance>, <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, 520, '<none>', <httplib.HTTPMessage instance>))
    380             func = getattr(handler, meth_name)
    381 
=>  382             result = func(*args)
    383             if result is not None:
    384                 return result
result undefined, func = <bound method HTTPDefaultErrorHandler.http_error...lt of <urllib2.HTTPDefaultErrorHandler instance>>, args = (<urllib2.Request instance>, <addinfourl at 4129872140L whose fp = <socket._fileobject object>>, 520, '<none>', <httplib.HTTPMessage instance>)
 /usr/lib/python2.7/urllib2.py in http_error_default(self=<urllib2.HTTPDefaultErrorHandler instance>, req=<urllib2.Request instance>, fp=<addinfourl at 4129872140L whose fp = <socket._fileobject object>>, code=520, msg='<none>', hdrs=<httplib.HTTPMessage instance>)
    529 class HTTPDefaultErrorHandler(BaseHandler):
    530     def http_error_default(self, req, fp, code, msg, hdrs):
=>  531         raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    532 
    533 class HTTPRedirectHandler(BaseHandler):
global HTTPError = <class 'urllib2.HTTPError'>, req = <urllib2.Request instance>, req.get_full_url = <bound method Request.get_full_url of <urllib2.Request instance>>, code = 520, msg = '<none>', hdrs = <httplib.HTTPMessage instance>, fp = <addinfourl at 4129872140L whose fp = <socket._fileobject object>>

<class 'urllib2.HTTPError'>: HTTP Error 520: <none>
      args = ()
      close = <bound method HTTPError.close of HTTPError()>
      code = 520
      errno = None
      filename = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1'
      fileno = <bound method _fileobject.fileno of <socket._fileobject object>>
      fp = <addinfourl at 4129872140L whose fp = <socket._fileobject object>>
      getcode = <bound method HTTPError.getcode of HTTPError()>
      geturl = <bound method HTTPError.geturl of HTTPError()>
      hdrs = <httplib.HTTPMessage instance>
      headers = <httplib.HTTPMessage instance>
      info = <bound method HTTPError.info of HTTPError()>
      message = ''
      msg = '<none>'
      next = <bound method _fileobject.next of <socket._fileobject object>>
      read = <bound method _fileobject.read of <socket._fileobject object>>
      readline = <bound method _fileobject.readline of <socket._fileobject object>>
      readlines = <bound method _fileobject.readlines of <socket._fileobject object>>
      reason = '<none>'
      strerror = None
      url = 'http://search.twitter.com/search.json?q=obama%20smart&rpp=100&page=1'