J'ai besoin d'analyser une page HTML avec windows-1251 charset (il est en russe).Quel parseur HTML choisir et pourquoi BeautifulSoup ne fonctionne pas?
Le problème est qu'il est l'application Web et je dois utiliser Python 2.4 sans possibilité d'installer des modules sur le serveur. La seule chose que j'ai essayé de faire était de demander à un administrateur pour installer le module lxml mais néanmoins il n'a pas été construit de la bonne manière sur 2.4 et tenter d'importer lxml.html échoue.
Maintenant, je suis en train de choisir entre BeautifulSoup et html5lib modules, mais je ne trouve pas d'exemples simples d'utilisation html5lib (j'ai juste besoin d'extraire du texte de la certains div élément avec décapage tous les autres tags à l'intérieur). À son tour, BeautifulSoup renvoie une erreur 'caractères indésirables dans la balise de début: u' \ u041f \ u0440 \ u043e \ u0434 \ u0430 \ u0436 \ u0430> » et toute tentative de décoder la page source de à Unicode ou tout autre charset ne l'a pas fait.
Qu'est-ce que je fais de mal? Ou quel parseur je devrais utiliser?
Quelle version de BeautifulSoup utilisez-vous? Voir http://www.crummy.com/software/BeautifulSoup/3.1-problems.html, éviter '3.1. *' (Sauf si vous utilisez Python 3) et le bâton avec '3.0.x' (pour' x> = 8'). –
J'utilise 3.0.8.1 à cause de Python 2.4. C'est le problème principal que la version de Python est si vieille. – Enchantner
Votre message d'erreur semble avoir déjà des objets Unicode. Etes-vous sûr que vous lisez réellement les données de chaîne binaire encodées dans CP1251 et qu'elles ne sont pas converties en unicode quelque part dans la pile? –