HtmlAgilityPack HtmlWeb. Carga devolviendo un documento vacío

c# html html-agility-pack web-crawler

Pregunta

He estado usando HtmlAgilityPack durante los últimos 2 meses en una aplicación de rastreador web sin problemas al cargar una página web.

Ahora, cuando intento cargar una página web en particular, el documento OuterHtml está vacío, por lo que esta prueba falla

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", pageHtml);

Puedo cargar otra página del sitio sin problemas, como la configuración

url = "http://www.prettygreen.com/news/";

En el pasado, una vez tuve un problema con las codificaciones, jugaba con htmlWeb.OverrideEncoding y htmlWeb.AutoDetectEncoding sin suerte. No tengo idea de cuál podría ser el problema aquí con esta página web.

Respuesta aceptada

Parece que este sitio web requiere que las cookies estén habilitadas. Así que crear un contenedor de cookies para su solicitud web debería resolver el problema:

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
htmlWeb.PreRequest += request =>
    {
        request.CookieContainer = new System.Net.CookieContainer();
        return true;
    };
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", outerHtml);


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué