HTMLParserがエンコーディングを受け取るのでそこで教えてあげます。
http://codespeak.net/lxml/api/lxml.etree.HTMLParser-class.html
In [71]: sjis_url = 'http://www.owabi119.com/bunrei.html' In [72]: sjis_src = urllib.urlopen(sjis_url).read() In [73]: sjis_et = etree.parse(StringIO(sjis_src),etree.HTMLParser(encoding='shift_jis')) In [75]: print etree.tostring(sjis_et.getroot().xpath('//title')[0], encoding='sjis') <?xml version='1.0' encoding='sjis'?> <title>お詫び文 手紙 詫び状 ビジネス文書 書き方 文例 謝罪文 例文 作成 サンプル|お詫びライターズ</title>
たいていの場合はこれでうまくいきそうかな。