C # Descargar perfil de Instagram como HTML

c# download html html-agility-pack instagram

Pregunta

He estado intentando descargar un perfil público de Instagram para obtener estadísticas como seguidores y biografía. He estado haciendo esto en la aplicación ac # console y descargando el HTML usando HTML Agility Pack.

Código:

string url = @"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en";
Console.WriteLine();

HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);
document.Save(path1);

Cuando lo guardo, todo lo que obtengo es un montón de scripts y una pantalla en blanco:

introduzca la descripción de la imagen aquí

Me preguntaba cómo guardar el HTML una vez que todos los scripts se ejecutaron y formaron el contenido

Respuesta aceptada

RESPONDER

Gracias por las sugerencias sobre cómo descargar el HTML! Logré devolver algo de información de Instagram al final. Aquí está el código:

//(This was done using HTML Agility Pack)

string url = @"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en";

HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);

var metas = document.DocumentNode.Descendants("meta");
var followers = metas.FirstOrDefault(_ => _.HasProperty("name", "description"));

if (followers == null) { Console.WriteLine("Sorry, Can't Find Profile :("); return; }

var content = followers.Attributes["content"].Value.StopAt('-');

Console.WriteLine(content);

Y HasProperty () & StopAt ()

public static bool HasProperty(this HtmlNode node, string property, params string[] valueArray)
{
    var propertyValue = node.GetAttributeValue(property, "");
    var propertyValues = propertyValue.Split(' ');
    return valueArray.All(c => propertyValues.Contains(c));
}

public static string StopAt(this string input, char stopAt)
{
    int x = input.IndexOf(stopAt);
    return input.Substring(0, x);
}

NOTA:

Sin embargo, esta todavía no es la respuesta que estoy buscando. Todavía tengo un fragmento de HTML que no está estructurado de la misma manera que el HTML que recibí cuando lo miro en Google Chrome. Haciendo algunas búsquedas en el HTML, logré escalar el html sin contenido para una etiqueta meta que contenga el contenido. Esto está bien para esto, pero si voy a continuar con este método de búsqueda de contenido HTML, puede que no sea el mismo :(


Respuesta popular

    public MainWindow()
    {
        InitializeComponent();
        WB_1.Navigate(@"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en");

        WB_1.LoadCompleted += wb_LoadCompleted;
    }

    void wb_LoadCompleted(object sender, NavigationEventArgs e)
    {
        dynamic doc = WB_1.Document;
        string htmlText = doc.documentElement.InnerHtml;
    }


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow