#!/usr/bin/env python """ urllib2 Extensibility Example - data: URI Author: Sean B. Palmer, inamidst.com Share and enjoy! """ import urllib, urllib2 from cStringIO import StringIO class DataHandler(urllib2.BaseHandler): def data_open(self, request): uri = request.get_full_url() mime, data = uri[5:].split(',', 1) data = urllib.unquote(data) f = StringIO() f.write(data) f.seek(0) headers = {'Content-Type': mime} return urllib.addinfourl(f, headers, uri) opener = urllib2.build_opener(DataHandler) urllib2.install_opener(opener) def test(): u = urllib2.urlopen('data:text/plain,hmm') print u.info() print u.read() u.close() if __name__=="__main__": test()