C # Herunterladen von Instagram Profil als HTML

c# download html html-agility-pack instagram

Frage

Ich habe versucht, ein öffentliches Instagram-Profil auf die Abrufstatistiken wie Follower und Bio herunterzuladen. Ich habe dies in einer ac # -Konsolenanwendung getan und den HTML-Code mit HTML Agility Pack heruntergeladen.

Code:

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

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

Wenn ich es speichere, bekomme ich nur eine Menge Skripte und einen leeren Bildschirm:

Bildbeschreibung hier eingeben

Ich habe mich gefragt, wie ich den HTML-Code speichern kann, nachdem alle Skripts ausgeführt und der Inhalt erstellt wurde

Akzeptierte Antwort

ANTWORTEN

Danke für die Vorschläge zum Download des HTML! Ich habe am Ende einige Instagram-Informationen zurückgegeben. Hier ist der Code:

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

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

HINWEIS:

Dies ist jedoch immer noch nicht die Antwort, nach der ich suche. Ich habe immer noch ein Wrack von HTML, das nicht wie das HTML strukturiert ist, das ich erhalte, wenn ich es in Google Chrome betrachte. Bei einigen Suchvorgängen im HTML-Code konnte ich den inhaltslosen HTML-Code für ein Meta-Tag scalvieren, das den Inhalt enthält. Dies ist in Ordnung, aber wenn ich diese Methode zum Finden von HTML-Inhalten fortsetzen möchte, dann ist es vielleicht nicht dasselbe :(


Beliebte Antwort

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum