Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   C# AngleSharp Как начать? (http://forum.oszone.net/showthread.php?t=352710)

vk_k14m@vk 02-01-2023 21:38 3000118

C# AngleSharp Как начать?
 
На этом форуме вообще можно обсуждать 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 18-01-2023 18:51 3001220

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

Цитата vk_k14m@vk
Как мне сделать все тоже самое но с использованием AngleSharp. »

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

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

HTML Парсинг Оно?
Там пример кода есть.


Время: 00:21.

Время: 00:21.
© OSzone.net 2001-