Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для ArtSmm
32 / 32 / 2
Регистрация: 07.01.2016
Сообщений: 488

Работа с AngleSharp?

17.06.2022, 16:49. Показов 449. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня
Пробую парсить сайт с помощью данной либы.
Во всех примерах участвует такой кусочек кода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
var parser = new HtmlParser();
                var document = parser.ParseDocument(_url);
 
                var links = document.QuerySelectorAll("a");
                foreach (var link in links)
                {
                    var neededLink = link.GetAttribute("href").ToString();
                    neededLink.Dump();
                    neededLink.Trim().ToLower();
                    Console.WriteLine(neededLink);
                    Thread.Sleep(500);
                }
Что такое Dump() ?? и для чего эта команда?
У меня она не определяется
AngleSharp подключен так: using AngleSharp.Html.Parser;

Вопрос 2:
Вызываю два метода:
C#
1
2
3
4
5
var request = new GetRequest("https://www.wildberries.ru/");                                        
                                        request.Run();
 
                                        var parsePages = new UrlGet(request.ToString());
                                        parsePages.ParserRun();
В GetRequest - получаю Html страницы, который хранится в переменной request

Я хочу эту переменную подставить во второй метод (UrlGet те) и в этом Html собрать все url который есть на странице.

Пробую собрать методом, который описал в начале, через GetAttribute("href")

Что не так делаю?
var parsePages = new UrlGet(request.ToString());
parsePages.ParserRun();

эта конструкция не дает результатов и в консоль ничего не выводит..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2022, 16:49
Ответы с готовыми решениями:

Работа с AngleSharp, нужны примеры работы
Может кто поделиться примерами работы с данным парсером? На гитхабе у него документация крайне скудная( В които веке решил сделать все...

Работа с парсерами HTML (AngleSharp | Fizzler)
Добрый день всем! Решил разобраться в работе с парсингом HTML. Погуглив узнал о лучших парсерах для этого. А именно о AngleSharp и о...

AngleSharp and JS
Доброго времени суток. Делаю парсер с использованием AngleSharp. Столкнулся с проблемой, что не могу распарсить элементы, которые...

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
17.06.2022, 17:13
Цитата Сообщение от ArtSmm Посмотреть сообщение
Что такое Dump() ?? и для чего эта команда?
Это из LINQPad. Просто убирайте строки с Dump().

По второму вопросу покажите код целиком чтобы его попробовать можно было.
0
 Аватар для ArtSmm
32 / 32 / 2
Регистрация: 07.01.2016
Сообщений: 488
17.06.2022, 17:23  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using AngleSharp.Html.Parser;
 
namespace WB_parser.Parsing.AllPages
{
    public class UrlGet
    {
        string _url;
 
        public string ParserRespone { get; set; }
 
        public UrlGet(string url)
        {
            _url = url;
        }
 
        public void ParserRun()
        {
            try
            {
                var parser = new HtmlParser();
                var document = parser.ParseDocument(_url);
 
                var links = document.QuerySelectorAll("a");
                foreach (var link in links)
                {
                    var neededLink = link.GetAttribute("href").ToString();
                    neededLink.Trim().ToLower();
                    Console.WriteLine(neededLink);
                    Thread.Sleep(500);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
17.06.2022, 18:05
ArtSmm, в метод ParseDocument нужно передавать html код, а вы передаете ссылку. Добавьте скачивание с помощью HttpClient или средствами самого AngleSharp (примеры есть на гитхабе).

Цитата Сообщение от ArtSmm Посмотреть сообщение
neededLink.Trim().ToLower();
Вы в курсе что это бессмысленная строка?
0
 Аватар для ArtSmm
32 / 32 / 2
Регистрация: 07.01.2016
Сообщений: 488
17.06.2022, 20:49  [ТС]
да, знаю
хотел бы уточнить - что я не так сделал в коде? те почему не берутся урлы?

Добавлено через 45 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
ParseDocument нужно передавать html код
не увидел сообщение) понял, спасибо за ответ. Попробую так))

Добавлено через 1 час 51 минуту
Работает! Спасибо огромное)))
Кому интересно, кусочек кода стал таким:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;
 
namespace WB_parser.Parsing.AllPages
{
    public class HtmlCodeGet
    {
        string _url;
 
        public string ParserRespone { get; set; }
 
        public HtmlCodeGet(string url)
        {
            _url = url;
        }
 
        public async void ParserRun()
        {
            try
            {
                var parser = new HtmlParser();
                var config = Configuration.Default.WithDefaultLoader();
                string address = "https://www.wildberries.ru/";
                IBrowsingContext context = BrowsingContext.New(config);
                IDocument document = await context.OpenAsync(address);
 
                //var htmlLoader = parser.ParseDocument(_url);
 
                IHtmlCollection<IElement> cells = document.QuerySelectorAll("a");
 
                //var links = htmlLoader.QuerySelectorAll("a");
 
                foreach (var link in cells)
                {
                    var neededLink = link.GetAttribute("href").ToString();
                    Console.WriteLine(neededLink);
                    Thread.Sleep(500);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2022, 20:49
Помогаю со студенческими работами здесь

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

Парсинг на AngleSharp
Здравствуйте уважаемые господа. Имеется вот такой html &quot;кодец&quot;: &lt;div id=&quot;29259&quot; class=&quot; pull-left m-5 bg-silver-lighter...

Парсинг через AngleSharp
пытаюсь обратиться к тегу div что не так? пишу недавно на C# точной информации не могу найти по библиотеки AngleSharp var...

Как работает AngleSharp?
Доброго времени суток друзья! Я совсем новенький только начал изучать C# (3й день). Мне нужно понять на примере как с помощью библиотеки...

AngleSharp не парсит код
Нужно спарсить адреса с сайта по span'y. Программа ничего не выводит. В чём ошибка? using System; using System.Collections.Generic; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru