По-умолчанию, кодировка данных, полученных с сервера, определяется автоматически. Естественно, это имеет смысл только для текстовых данных. Grab использует кодировку документа, чтобы:
Оригинальное содержимое документа доступно в аттрибуте body объекта response, unicode-представление документа можно получить методом unicode_body() объекта response:
>>> g.go('http://yandex.ru')
<grab.response.Response object at 0x11bea90>
>>> type(g.response.body)
<type 'str'>
>>> type(g.response.unicode_body())
<type 'unicode'>
Алгоритм определения кодировки документа проверяет несколько источников, в следующем порядке:
Если кодировку определить не удалось или было найдено некорректное имя кодировки, то по-умолчанию, используется кодировка UTF-8.