Разное - C# AngleSharp Как начать?

Ответить
Аватара пользователя
vk_k14m@vk

Разное - C# AngleSharp Как начать?

Сообщение vk_k14m@vk »

На этом форуме вообще можно обсуждать C#? Не уверен.



Начал "изучать" С# около двух недель назад. Хочу создать простенький парсер страницы (не целого сайта). Сейчас я уже могу парсить но через регулярные выражения, и в интернете читал что через них вообще не стоит такое делать. Пишут про API. А API для нужного сайта нет.



Вот как я это делаю сейчас

Код:

Код: Выделить всё

WebClient source = new WebClient();
            string reply = source.DownloadString(@"https://www.мой_сайт.com.html");
            Match match1 = Regex.Match(reply, "<h1 itemprop=\"name\" id=\"work_name\">(.*?)</h1>");
            Match match2 = Regex.Match(reply, "<a href=\"https://www.мой_сайт/profile/=/maker_id/[0-9]*.html\">(.*?)</a>");
            Match match3 = Regex.Match(reply, "<td><a href=\"https://www.мой_сайт.com/new/=/year/[0-9]*/mon/[0-9]*/day/[0-9]*/cyear/[0-9]*/cmon/[0-9]*\">(.*?)</a></td>");
            Match match4 = Regex.Match(reply, "<td><a href=\"https://www.мой_сайт.com/maniax/new/=/year/([0-9][0-9][0-9][0-9])/mon/02/day/20/cyear/2022/cmon/02\">.*?</a></td>");
            Match match5 = Regex.Match(reply, "<a href=\"https://www.мой_сайт.com//work_type/from/icon.work\"><span class=\"icon\" title=\".*?\">(.*?)</span></a>");
            MatchCollection match6 = Regex.Matches(reply, "<a href=\"https://www.мой_сайт.com/genre/=/genre/[0-9][0-9][0-9]/from/work.genre\">(.*?)</a>");
            EngGameNameTextBox.Text = match1.Groups[1].Value;
            EngGameNameTextBox.ForeColor = System.Drawing.SystemColors.WindowText;
            DevEngTextBox.Text = match2.Groups[1].Value;
            DevEngTextBox.ForeColor = System.Drawing.SystemColors.WindowText;
            DateTextBox.Text = match3.Groups[1].Value;
            YearNumericUpDown.Text = match4.Groups[1].Value;
            TagsTextBox1.Text = match5.Groups[1].Value;
            for (int i = 0; i < match6.Count; i++)
            {
                if (GenreTextBox2.Text == "")
                    GenreTextBox2.Text = match6[i].Groups[1].Value;
                else
                    GenreTextBox2.Text = GenreTextBox2.Text + ", " + match6[i].Groups[1].Value;
            }

Я понимаю что код наверняка кривой, но сейчас речь не о нем.



Как мне сделать все тоже самое но с использованием AngleSharp. Документацию пытался читать, пытался гуглить, пытался на ютубе искать. Везде показывают либо что то склишком абстрактное, либо слишком конкретное, не то что нужно.



Если тут кто знаком с C#, можете подсказать?
Аватара пользователя
lxa85

Re: Разное - C# AngleSharp Как начать?

Сообщение lxa85 »

vk_k14m@vk, можно C#. Почему нет?


Цитата vk_k14m@vk:



Как мне сделать все тоже самое но с использованием AngleSharp.
Разное - C# AngleSharp Как начать?




Все тоже самое, это что?

Просто сейчас это выглядит как некоторый кусок кода, который надо понять без комментариев, и потом сделать тоже самое на AngleSharp, прочитав за вас документацию и, самое странное, попробовав разобрать ваш код, чтобы понять что же это такое "тоже самое"?



Это не в обиду, просто чуть точнее сформулируйте вопрос.



HTML Парсинг
Оно?

Там пример кода есть.
Ответить

Вернуться в «Программирование и базы данных»