I dont actually see what is garbled in your output? Are you saying that the output contains HTML tags instead of normal text?
If so, you can implement preprocess_raw_html() in your recipe to fix the parsing, something like this
Code:
def preprocess_raw_html(self, raw, url):
from lxml import etree
import html5lib
root = html5lib.parse(
clean_xml_chars(raw), treebuilder='lxml',
namespaceHTMLElements=False)
return etree.tostring(root, encoding=unicode)