python에서 · 같은 특수문자를 콘솔에 출력

edict 같은 콘솔용 온라인 사전을 만들어보려고 하고 있습니다.
이런 문제만 생기지 않았다면 절대 공개 안하고 혼자 사용할만큼 부끄러운 날림 소스인데요.

일단 말씀드리면 한국 야후 사전에 http로 질문을하고 대답으로 받아온
http소스를 관심 있는 부분만 추려서 화면에 뿌리려고 하는데요.

'점'이라던지, 괄호등이 ascii가 아니더군요.

일단 문서는 euc-kr이라고 써 있어서 euc-kr로 디코드 해서 화면에 보여주는데

특수문자들 때문에 지저분하게 나옵니다.
도움 부탁드립니다.

#!/usr/bin/env python

from sgmllib import SGMLParser
import htmlentitydefs
import urllib
import codecs
import sys

class BaseHTMLProcessor(SGMLParser):
    def reset(self):
                SGMLParser.reset(self)
                self.pieces = []
                self.vt = False

    def start_p(self, att):
        if att[0][1] == u'p05' or att[0][1] == u'p03':
            self.vt = True

    def end_p(self):
        if self.vt:
            self.pieces.append("\n")
            self.vt = False

    def handle_data(self, text):
        if self.vt:
            self.pieces.append(text)

    def output(self):
        """Return processed HTML as a single string"""
        return "".join(self.pieces)

class ydicthon(BaseHTMLProcessor):

    def reset(self):
        BaseHTMLProcessor.reset(self)

    def go(self, key="dig"):
        keyurl="http://kr.dic.yahoo.com/search/eng/search.html?prop=eng&p="+key+"&x=0&y=0&type=eng"
        sock = urllib.urlopen(keyurl)
        htmlSource = sock.read()
        sock.close()
        hs = codecs.decode(htmlSource, "euc-kr")
        self.feed(hs)
        print self.output()

if __name__ == "__main__":
    a = ydicthon()
    key = sys.argv[1]
    print a.go(key)

이상이 저의 못난 파이썬 코드이고
결과는 다음과 같습니다.

python ydicthon.py python


 (무당에게 내리는) 혼령, 악령; 혼령이나 귀신이 들린 사람; (혼령이나 악령이 들린) 예언자, 점술사.



1. 〈그리스 신화〉 피톤(Apollo가 Delphi에서 퇴치한 거대한 뱀).
2. (p-) 비단뱀류, 거대한 구렁이.

None

음... 그러고 보니 맨 밑의 None도 뭔가의 버그 같네요. 그나마 파이썬 같은 경우는 덜 지저분하지만, 뜻이 많은 단어는 보기가 힘들어요