После выполненных вами операций вы увидите:
>>> 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>
и вы можете искать, и т. Д., И т. Д.
Edit: ввод / вывод Unicode, как правило, сложно (это может быть то, что задерживает оригинальный asker), но я собираюсь обойти трудную проблему ввода строк Unicode в интерактивный интерпретатор Python (полностью не связанный с исходным вопросом) чтобы показать, как, как только строка Юникода введена правильно (я делаю это с помощью кодовых точек - глупо, но не сложно ;-), поиск абсолютно легок (и, таким образом, мы надеемся, что на оригинальный вопрос был дан полный ответ). Снова при условии, что терминал UTF-8:
>>> x=u'\u0413\u043b\u0430\u0432\u043d\u043e\u0435'
>>> print x.encode('utf-8')
Главное
>>> x in ucontent
True
>>> ucontent.find(x)
93
Примечание : имейте в виду, что этот метод может работать не для всех сайтов, поскольку некоторые сайты указывают только кодировку символов внутри обслуживаемых документов (например, с использованием мета-тегов http-эквивалент).