El método htmlAgilityPack Load () no hace nada.

c# html-agility-pack winforms

Pregunta

Estoy usando htmlAgilityPack para obtener el contenido de un sitio web:

private String getImageUrl(String websiteUrl)
{
    HtmlAgilityPack.HtmlDocument docHtml = new HtmlWeb().Load(websiteUrl);
    // ...
}

No alcanzo el punto de interrupción en la segunda línea, la primera línea no lanza una excepción. La URL es existente y está disponible.

DocHtml tampoco es nulo, la línea parece no ejecutarse, noly mata mi hilo.

¿Qué puede hacer que esto suceda? ¿Cómo puedo obtener más información sobre lo que está sucediendo?

editar: La función se llama desde una clase, que se crea en la instancia de mi formulario principal. la clase que llama ejecuta un hilo. Para la primera instancia de mi clase, está funcionando, pero no para la segunda instancia.

private String getImageUrl(String websiteUrl)
{
    HtmlAgilityPack.HtmlDocument docHtml = new HtmlWeb().Load(websiteUrl);
    // ...
}

Respuesta popular

Tal vez el sitio al que intenta acceder requiere cookies habilitadas. Agregue un CookieContainer al objeto HtmlWeb e intente Load método.

HtmlWeb htmlWeb = new HtmlWeb();
htmlWeb.PreRequest += request =>
    {
        request.CookieContainer = new System.Net.CookieContainer();
        return true;
    };
var htmlDoc = htmlWeb.Load(yourUrl);



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é