C # Download del profilo Instagram come HTML

c# download html html-agility-pack instagram

Domanda

Ho cercato di scaricare un profilo Instagram pubblico per le statistiche di recupero come follower e bio. Ho fatto questo in un'applicazione console # AC e scaricato l'HTML utilizzando HTML Agility Pack.

Codice:

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

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

Quando lo salvo, tutto quello che ottengo è un mucchio di script e uno schermo vuoto:

inserisci la descrizione dell'immagine qui

Mi chiedevo come salvare l'html una volta che tutti gli script erano stati eseguiti e formato il contenuto

Risposta accettata

RISPOSTA

Grazie per i suggerimenti su come scaricare l'HTML! Sono riuscito a restituire alcune informazioni su Instagram alla fine. Ecco il codice:

//(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);

E HasProperty () e 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:

Tuttavia questa non è ancora la risposta che sto cercando. Ho ancora un relitto di HTML che non è strutturato allo stesso modo dell'HTML che ricevo quando lo guardo in Google Chrome. Facendo qualche ricerca nel codice HTML sono riuscito a scalare l'html senza contenuto per un meta tag che contiene il contenuto. Questo è ok per questo, ma se ho intenzione di continuare questo metodo di ricerca di contenuti HTML, potrebbe non essere lo stesso :(


Risposta popolare

    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;
    }


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché