Après les opérations que vous avez effectuées, vous verrez:
>>> req.headers['content-type']
'text/html; charset=windows-1251'
et donc:
>>> encoding=req.headers['content-type'].split('charset=')[-1]
>>> ucontent = unicode(content, encoding)
ucontent
est maintenant une chaîne Unicode (de 140655 caractères) -- ainsi, par exemple, pour afficher une partie d'elle, si votre terminal est en UTF-8:
>>> print ucontent[76:110].encode('utf-8')
<title>Lenta.ru: Главное: </title>
et vous pouvez faire des recherches, etc, etc.
Edit: Unicode I/O est généralement difficile (cela peut être ce qu'est maintenant l'originale asker) mais je vais contourner le problème difficile de la saisie de chaînes Unicode interactif de l'interpréteur Python (sans aucun rapport avec la question d'origine) pour montrer comment, à partir d'une chaîne Unicode EST correctement entrée (je suis en train de faire par codepoints -- goofy, mais pas difficile;-), la recherche est absolument pas sorcier (et donc j'espère que la question initiale a été soigneusement répondu). En supposant encore une fois UTF-8 d'un terminal:
>>> x=u'\u0413\u043b\u0430\u0432\u043d\u043e\u0435'
>>> print x.encode('utf-8')
Главное
>>> x in ucontent
True
>>> ucontent.find(x)
93
Remarque: Gardez à l'esprit que cette méthode peut ne pas fonctionner pour tous les sites, car certains sites ne spécifier le codage des caractères à l'intérieur de la signification de documents (à l'aide de http-equiv meta balises, par exemple).