@Bundllor

Как выбрать несколько элементов с помощью HTML agility pack?

Решил использовать плагин HTML Agility Pack для парсинга вк. Я пытаюсь спарсить аккаунт стима, вроде все получается, за исключением игр. Суть в том, что я должен с помощью SelectNodes выбрать все элементы и через foreach помещать каждый в List box. Вот только визуал студио мне говорит, что не может справиться с этой задачей, а по-другому, как в скрипте ниже, не работает.
60ec38fa46165563177155.png
60ec3912b3402188809742.png

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HtmlAgilityPack;
using HtmlDocument = HtmlAgilityPack.HtmlDocument;

namespace SteamParser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void UserCheckButton_Click(object sender, EventArgs e)
        {
            HtmlWeb web = new HtmlWeb();
            HtmlDocument user = web.Load(UserReferenceTextBox.Text);
            HtmlDocument usergames = web.Load(UserReferenceTextBox.Text + "/games/");

            UserNameLabel.Text = user.DocumentNode.SelectSingleNode(".//div [@class='persona_name']//span").InnerText.Trim();
            UserLevelLabel.Text = "Level: " + user.DocumentNode.SelectSingleNode(".//span [@class='friendPlayerLevelNum']").InnerText.Trim();
            UserOnlineStatus.Text = user.DocumentNode.SelectSingleNode(".//div [@class='profile_in_game_header']").InnerText.Trim();

            HtmlNode games = usergames.GetElementbyId("games_list_rows");
            HtmlNodeCollection games2 = games.SelectNodes("//div [@class='gameListRow']");

            foreach (HtmlNode game in games2)
            {
                GamesListBox.Items.Add(game);
            }
        }
    }
}
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
В HtmlAgilityPack самое главное, что "под капотом" - это xPath запрос.
Рекомендую сначала проводить отладку этих запросов в Chrome DevTools (например), а после отладки запроса - переносить его в программу.
На закладке Elements нажимаете Ctrl+F и можете вводить в строке поиска xPath. В интерфейсе сразу можно увидеть - нашлись ли элементы, сколько их, перейти от одного к другому и т.д.
Проверить, - что не так у Вас в коде можно только зная url страницы, где Вы экспериментируете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы