WebClient GodLikeClient = new WebClient();
HtmlAgilityPack.HtmlDocument GodLikeHTML = new HtmlAgilityPack.HtmlDocument();

GodLikeHTML.Load(GodLikeClient.OpenRead("www.alfa.lt");

Por lo que este código devuelve: «Skaitytojo klausimas psichologui: kas lemia homoseksualumÄ…? – NaujienÅ3 portalas Alfa.lt» en lugar de «Skaitytojo klausimas psichologui: kas lemia homoseksualumą? – Naujienų portalas Alfa.lt».

Esta página está codificada en el año 1257 (mar báltico), pero textBox1.Text = GodLikeHTML.DocumentNode.OuterHtml; devuelve el texto distorsionado – báltico, los signos diacríticos se transforma en un extraño varios caracteres cadenas de caracteres 🙁

Y sí, he probado el HtmlAgilityPack foros. Ellos chupan.

P. S. yo no soy programador, pero yo trabajo en un proyecto de la comunidad y que realmente necesita para obtener este código de trabajo. Gracias ;}

InformationsquelleAutor August | 2010-08-10

7 Comentarios

  1. 25

    Realidad, la página está codificado con UTF-8.

    GodLikeHTML.Load(GodLikeClient.OpenRead("http://www.alfa.lt"), Encoding.UTF8);

    de trabajo.

    O usted puede utilizar el código de mi PARA responder que detecta la codificación de los encabezados http o etiquetas meta, en re-codifica correctamente. (También es compatible con gzip para minimizar la descarga).

    Con la descarga de la clase el código quedaría así:

    HttpDownloader downloader = new HttpDownloader("http://www.alfa.lt",null,null);
    GodLikeHTML.LoadHtml(downloader.GetPage());
    • Yup, que hizo el trabajo 😀 Wow, muy simple, no lo es. Gracias!
    • muchas gracias, tiene loco personajes como á o lo que sea, ahora se está trabajando muy bien
    • Dehell es GodLikeHTML? Es este un sinónimo o estoy realmente buscando la clase con ese nombre?
    • Es una variable a partir de la pregunta original
    • Cómo usar un Proxy y DefaultCredentials con tu clase?
    • Le sugiero que eche un vistazo a la availble propiedades de la clase HttpWebRequest y usted se sorprenderá 🙂
    • Hice una sobrecarga en el constructor y añadido en la obtener la solicitud de la página. pero ahora el futuro lector tendrá una sólida sugerencia sobre cómo hacerlo. Porque cuando se lucha en contra de la codificación puede faltar cosa simple.

  2. 12

    Tuve una similar los problemas de codificación. Me fijo, en la versión más actual de HtmlAgilityPack, agregando lo siguiente a mi WebClient de inicialización.

    var htmlWeb = new HtmlWeb();
    htmlWeb.OverrideEncoding = Encoding.UTF8;
    var doc = htmlWeb.Load("www.alfa.lt");
    • Mejor respuesta (¿por qué utilizar webclient cuando usted puede hacerlo mediante la utilización de HTMLAgilityPack
  3. 5
     HtmlAgilityPack.HtmlDocument doc = new HtmlDocument(); 
     StreamReader reader = new StreamReader(WebRequest.Create(YourUrl).GetResponse().GetResponseStream(), Encoding.Default); //put your encoding            
     doc.Load(reader);

    espero que ayude 🙂

  4. 4

    UTF8 no funciona para mí, pero después de la configuración de la codificación como este, la mayoría de las páginas que yo estaba tratando de raspar funcionado wel:

    web.OverrideEncoding = Codificación.GetEncoding(«ISO-8859-1»);

    Tal vez podría ayudar a alguien.

  5. 1

    tratar de cambiar eso para GodLikeHTML.Load(GodLikeClient.OpenRead("www.alfa.lt"), Encoding.GetEncoding(1257));

    • lo siento, me he equivocado – que fue codificado en utf. Gracias por tu ayuda, aunque.
  6. 0

    Esta es mi solución

     HttpWebRequest request =(HttpWebRequest)WebRequest.Create("http://www.sina.com.cn");
    HttpWebResponse response =(HttpWebResponse)request.GetResponse();
    long len = response.ContentLength;
    byte[] barr = new byte[len]; 
    response.GetResponseStream().Read(barr, 0, (int)len); 
    response.Close();
    string data = Encoding.UTF8.GetString(barr); 
    var encod = doc.DetectEncodingHtml(data);
    string convstr = Encoding.Unicode.GetString(Encoding.Convert(encod, Encoding.Unicode, barr));
    doc.LoadHtml(convstr);
  7. 0

    si todos esos post no funciona, Sólo tiene que utilizar esta: WebUtility.HtmlDecode("Your html text");

Dejar respuesta

Please enter your comment!
Please enter your name here