#!/usr/bin/env python #query the UD. import urllib, urllib2, re, sys #the replace map replaceMap = { " ":"\x20", """:"\x22", "&":"\x26", "'":"\x27", "–":"\x2D", "<":"\x3C", ">":"\x3E", "˜":"\x7E", "€":"\x80", "¡":"\xA1", "¢":"\xA2", "£":"\xA3", "¤":"\xA4", "¥":"\xA5", "¦":"\xA6", "§":"\xA7", "¨":"\xA8", "©":"\xA9", "ª":"\xAA", "«":"\xAB", "¬":"\xAC", "":"\xAD", "®":"\xAE", "&hibar;":"\xAF", "°":"\xB0", "±":"\xB1", "²":"\xB2", "³":"\xB3", "´":"\xB4", "µ":"\xB5", "¶":"\xB6", "·":"\xB7", "¸":"\xB8", "¹":"\xB9", "º":"\xBA", "»":"\xBB", "¼":"\xBC", "½":"\xBD", "¾":"\xBE", "¿":"\xBF", "À":"\xC0", "Á":"\xC1", "Â":"\xC2", "Ã":"\xC3", "Ä":"\xC4", "Å":"\xC5", "Æ":"\xC6", "Ç":"\xC7", "È":"\xC8", "É":"\xC9", "Ê":"\xCA", "Ë":"\xCB", "Ì":"\xCC", "Í":"\xCD", "Î":"\xCE", "Ï":"\xCF", "Ð":"\xD0", "Ñ":"\xD1", "Ò":"\xD2", "Ó":"\xD3", "Ô":"\xD4", "Õ":"\xD5", "Ö":"\xD6", "×":"\xD7", "Ø":"\xD8", "Ù":"\xD9", "Ú":"\xDA", "Û":"\xDB", "Ü":"\xDC", "Ý":"\xDD", "Þ":"\xDE", "ß":"\xDF", "à":"\xE0", "á":"\xE1", "â":"\xE2", "ã":"\xE3", "ä":"\xE4", "å":"\xE5", "æ":"\xE6", "ç":"\xE7", "è":"\xE8", "é":"\xE9", "ê":"\xEA", "ë":"\xEB", "ì":"\xEC", "í":"\xED", "î":"\xEE", "ï":"\xEF", "ð":"\xF0", "ñ":"\xF1", "ò":"\xF2", "ó":"\xF3", "ô":"\xF4", "õ":"\xF5", "ö":"\xF6", "÷":"\xF7", "ø":"\xF8", "ù":"\xF9", "ú":"\xFA", "û":"\xFB", "ü":"\xFC", "ý":"\xFD", "þ":"\xFE", "ÿ":"\xFF" } if len(sys.argv) < 2: print "usage: %s term"% sys.argv[0] sys.exit(1) r=re.compile(r'
(.*?)
',re.M|re.S) #no option parsing, just a quick hack. s="" s = urllib2.urlopen("http://urbandictionary.com/define.php?"+ urllib.urlencode({'term':sys.argv[1]})).read() l = r.findall(s) r2 = re.compile(r'<[^>]*?>') l = [r2.sub('', x) for x in l] for n, t in enumerate(l): for k, v in replaceMap.iteritems(): t = t.replace(k, v) print "%d: %s"% (n+1, t)