2 votes

Procédure universelle "HTTP GET du contenu de la page html et recodage en UTF-8".

Depuis un certain temps, j'essaie de résoudre un problème assez courant qui consiste essentiellement en trois étapes :

  1. Récupère la page html avec l'URL spécifiée et stocke son contenu dans une chaîne.
  2. détecter l'encodage du contenu à partir des méta-informations html ou de l'en-tête HTTP.
  3. recoder le contenu en UTF-8 pour un traitement ultérieur.

Dans l'utilisation réelle, la première étape a été un peu étendue avec des fonctionnalités telles qu'une instance "user-agent" avec cookie-jar, un délai d'attente et un nombre de tentatives GET configurables, une limitation du nombre de requêtes par période de temps configurable, etc...

J'ai mis en place rest-client mais je rencontre plusieurs problèmes :

  • classe-globale RestClient.proxy les réglages sont en conflit avec, par exemple couchrest (en utilisant rest-client lui-même)
  • gel : parfois, le délai d'attente provoque le gel du processus. AFAIK plus de mes amis rencontrent le même problème avec rest-client
  • rediriger Location Analyse syntaxique des URI : rest-client ne parvient pas à récupérer correctement l'adresse "http://www.ofertacarioca.com.br/index.aspx?cidade=4,Belo%20Horizonte", en raison d'un URI non valide, "/indexnew.aspx?cidade=4,Belo Horizonte", dans le fichier Location du résultat du 302 mais curb gère cela parfaitement jusqu'à la page cible. Je suis sur le point de réimplémenter le wrapper avec l'utilisation de curb
  • les problèmes de recodage dans la troisième étape : J'ai essayé de détecter l'encodage à partir des méta-informations de la page html et de l'en-tête HTTP (dans cet ordre) pour certaines pages, mais sans succès.

J'aimerais bien savoir s'il existe un joyau qui répondrait à ce genre de besoins ou s'il existe une solution universelle intrigante.

0voto

geronime Points 533

Comme personne n'a répondu, j'ai eu besoin de mettre en œuvre la fonction curb -La solution est basée sur la technologie : curburger

Peut-être que quelqu'un le trouve utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X