C # Загрузка профиля Instagram в формате HTML

c# download html html-agility-pack instagram

Вопрос

Я пытаюсь загрузить публичный профиль Instagram в статистику извлечения, например, последователей и биографию. Я делаю это в консольном приложении ac # и загружаю HTML с помощью HTML Agility Pack.

Код:

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

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

Когда я его сохраняю, хотя все, что я получаю, это куча скриптов и пустой экран:

введите описание изображения здесь

Мне было интересно, как сохранить html, как только все скрипты запустили и сформировали контент

Принятый ответ

ОТВЕТ

Спасибо за предложения о том, как загрузить HTML! В конце концов мне удалось вернуть некоторую информацию instagram. Вот код:

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

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

ЗАМЕТКА:

Однако это еще не тот ответ, который я ищу. У меня все еще есть обломка HTML, который не структурирован так же, как HTML, который я получаю, когда смотрю на него в Google Chrome. Выполняя некоторые поиски в HTML, мне удалось масштабировать без содержания контент html для метатега, который содержит контент. Это нормально для этого, но если я продолжу этот метод поиска HTML-контента, то он может быть не таким :(


Популярные ответы

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему