Если вы используете runnable, вы можете сэкономить место для расширения до любого другого вашего класса.
После выполненных вами операций вы увидите:
>>> req.headers['content-type']
'text/html; charset=windows-1251'
и так:
>>> encoding=req.headers['content-type'].split('charset=')[-1]
>>> ucontent = unicode(content, encoding)
ucontent
теперь является строкой Unicode (из 140655 символов) - так, например, чтобы отобразить его часть, если ваш терминал UTF-8:
>>> print ucontent[76:110].encode('utf-8')
<title>Lenta.ru: Главное: </title>
и вы можете искать и т. д. и т. д.
Изменить: ввод-вывод Unicode обычно сложен (это может быть что задерживает первоначальный вопросник), но я собираюсь обойти сложную проблему ввода строк Unicode в интерактивный интерпретатор Python (совершенно не связанный с исходным вопросом), чтобы показать, как, когда строка Unicode правильно введена (я делаю это по кодовым точкам - глупо, но не сложно ;-), поиск - это абсолютно несложная задача (и поэтому, надеюсь, на исходный вопрос был дан исчерпывающий ответ). Снова предполагая терминал UTF-8:
>>> x=u'\u0413\u043b\u0430\u0432\u043d\u043e\u0435'
>>> print x.encode('utf-8')
Главное
>>> x in ucontent
True
>>> ucontent.find(x)
93
Примечание :