Предложения по улучшению инструментов парсинга и взаимодействия с элементами сайтов

Как Вы парсите данные?

  • Я новичок (пользуюсь менее 3-х мес.), использую конструктор действий

    Голосов: 7 12,5%
  • Я новичок, использую помощник парсинга

    Голосов: 4 7,1%
  • Я новичок, использую C# код

    Голосов: 3 5,4%
  • Я новичок, использую другие способы

    Голосов: 1 1,8%
  • Я опытный (пользуюсь более 3-х мес.), использую конструктор действий

    Голосов: 11 19,6%
  • Я опытный, использую помощник парсинга

    Голосов: 8 14,3%
  • Я опытный, использую C# код

    Голосов: 15 26,8%
  • Я опытный, использую другие способы

    Голосов: 7 12,5%

  • Всего проголосовало
    56
Статус
Закрыто для дальнейших ответов.

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Продолжаем рубрику полезных опросов для улучшения пользовательского опыта при работе с ProjectMaker и ZennoPoster :-)

Коллеги, расскажите, пожалуйста, каким методом вы чаще всего парсите данные с сайтов?
Это позволит нам сделать определенные выводы и улучшить инструменты для сбора данных с сайтов, в частности конструктор действий.

Варианты:
Проголосуйте и напишите ваш вариант ниже и если не затруднит, объясните почему вы используете именно его - чем он лучше остальных способов по вашему мнению.
Что удобно и неудобно, что радует или наоборот заставляет вас нервничать? Делитесь! :dw:

И второй вопрос: Что вы хотели бы улучшить в текущих инструментах парсинга и взаимодействия с элементами сайта (клики, установка значений и т.п.)?
 
Последнее редактирование:
  • Спасибо
Реакции: Yuriy Zymlex

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
весь html в htmlagility и парсишь сколько хочешь за 0.000000000001 сек с минимальной нагрузкой
 

Asmus003

Client
Регистрация
25.03.2018
Сообщения
259
Благодарностей
66
Баллы
28
Пользуюсь только XPath на C#. Мне удобно там собирать коллекции элементов и обрабатывать их как нужно. Парсинг регуляркой считаю извращением) Кубик "парсинг текста" часто не находит то, что мне нужно.
 
  • Спасибо
Реакции: Rooter85 и andrey-ka

Nilsoner

Client
Регистрация
24.11.2017
Сообщения
217
Благодарностей
185
Баллы
43
Расскажу.
1. Смотрю как расположены необходимые данные на странице.
2. Смотрю как реализован переход между страницами, как понять что парсинг должен быть закончен.
3. Реализую эту логику в PM, т.е. это или счетчик, или проверка регуляркой на наличие определенного символа на странице.
4. Затем использую GET запросы и регулярные выражения для поиска необходимых данных.

Но обычно для парсинга использую Python и библиотеки request и BS4, там уже xpath.
 

tatarin

Client
Регистрация
28.10.2012
Сообщения
805
Благодарностей
137
Баллы
43
  • Конструктор действий - самый легкий!
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
весь html в htmlagility и парсишь сколько хочешь за 0.000000000001 сек с минимальной нагрузкой
Насколько встроенные методы парсинга через C# уступают htmlagility по вашему мнению?

Пользуюсь только XPath на C#. Мне удобно там собирать коллекции элементов и обрабатывать их как нужно. Парсинг регуляркой считаю извращением) Кубик "парсинг текста" часто не находит то, что мне нужно.
Конструктор действий - самый легкий!
Пользовались ли вы "Помощником парсинга"?
 

tatarin

Client
Регистрация
28.10.2012
Сообщения
805
Благодарностей
137
Баллы
43

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Конструктор действий: использую для заполнения форм регистрации/постинга, хватает в 95% случаев его
Регулярные выражения: парсинг ссылок на активацию из почты
C# (с помощью встроенных методов FindChildByXPath и др.): заполнение сложных форм, где нужно рандомно расставить какие-то галочки/селекты в зависимости от предыдущих результатов
 

andrey-ka

Client
Регистрация
03.06.2018
Сообщения
855
Благодарностей
246
Баллы
43
Пользуюсь только XPath на C#. Мне удобно там собирать коллекции элементов и обрабатывать их как нужно. Парсинг регуляркой считаю извращением) Кубик "парсинг текста" часто не находит то, что мне нужно.
Я аналогично.

Правой кнопкой на элементе, смотрю как он расположен в дереве, есть ли стандартные id, name, class.
Далее если нет то уже поиск по вложенности, расположению, содержимому.
 

Asmus003

Client
Регистрация
25.03.2018
Сообщения
259
Благодарностей
66
Баллы
28
Насколько встроенные методы парсинга через C# уступают htmlagility по вашему мнению?



Пользовались ли вы "Помощником парсинга"?
Мне этот кубик не нужен, поскольку я паршу не просто названия, как на скрине, а названия и кучу характеристик для каждого названия, и потом это все в табличку ложу. Мне на C# это удобнее, не представляю как это удобно делать регулярками или кубиком этим. Кроме того, я там же на C# обрабатываю результаты и удаляю ненужные, например по дате или кол-ву. И это все в 1 кубике. У меня код есть, в котором я меняю только пути xPath и немного адаптирую его под каждый сайт.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Если шаблон на запросах, то только "C# + HtmlAgilityPack.dll + xPath".
Если в браузере, то "C# + xPath". Обычные кубики использую только если надо много условий нагородить, типа как дополнительно высоту элементов на странице проверить для отброса невидимых и влом в C# это городить.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
1. Конструктор.
2. Регулярки.
Пока хватает.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Если шаблон на запросах, то только "C# + HtmlAgilityPack.dll + xPath".
Если в браузере, то "C# + xPath". Обычные кубики использую только если надо много условий нагородить, типа как дополнительно высоту элементов на странице проверить для отброса невидимых и влом в C# это городить.
Подскажите, а почему не используете встроенные методы парсинга через C#?

1. Конструктор.
2. Регулярки.
Пока хватает.
Пользовались ли Вы "Помощником парсинга" и если нет, то почему?
Что хотели бы улучшить в конструкторе?
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Пользовались ли Вы "Помощником парсинга" и если нет, то почему?
Что хотели бы улучшить в конструкторе?
Пользовался. Не понравилось.
Работает вроде как хорошо, но например если парсить выдачу в поисковике, то не всегда правильно берет выдачу. Еще одна причина - перехожу на запросы.

Добавить привязку "по умолчанию" к innertext, value или aria-label. Но это спорный момент. Чисто мое мнение, потому что на "продвинутых" сайтах, привязаться к элементу получается только такими способами.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Пользовался. Не понравилось.
Работает вроде как хорошо, но например если парсить выдачу в поисковике, то не всегда правильно берет выдачу.
Не понравилось только то, что не всегда верно забирает данные?

Еще одна причина - перехожу на запросы.
На запросах как раз тоже можно использовать помощник парсинга и разбирать данные из переменной, не только из вкладки браузера.

Чисто мое мнение, потому что на "продвинутых" сайтах, привязаться к элементу получается только такими способами.
Как раз для продвинутых сайтов и рекомендуется использоваться xPath выражения, которые есть в помощнике парсинга.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Не понравилось только то, что не всегда верно забирает данные?
Да. Все равно приходится "дорабатывать". Функция прикольная, но, наверное, только для самых новичков.
На запросах как раз тоже можно использовать помощник парсинга и разбирать данные из переменной, не только из вкладки браузера.
Не пробовал. Да и не знал.
Как раз для продвинутых сайтов и рекомендуется использоваться xPath выражения, которые есть в помощнике парсинга.
Это было по поводу конструктора. Сделать привязку для кнопок (и т.п.) по умолчанию к innertext, value или aria-label. Потому что привязка изначально идет к name, а в значении там "шифр".
 

Bablozavr

Client
Регистрация
26.01.2018
Сообщения
310
Благодарностей
164
Баллы
43
Использую конструктор действий и C# с регулярками, для моих задач хватает с лихвой

Было бы удобно, добавить в "конструктор действий" кнопку, чтобы автоматом заполняло поле "Текст для обработки" текущим кодом страницы или кодом из выбранной переменной
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Подскажите, а почему не используете встроенные методы парсинга через C#?...
Когда только начинал изучать xPath в зенке (2017 год, еще тогда сделал пост с шаблоном-примером и ссылками на теорию по xPath+Zenno+HtmlAgilityPack ) то помощника еще не было. Да и на форуме не было примеров как на запросах без браузера в C# xPath родными методами работать. Старожилы тогда HtmlAgilityPack советовали, вот я на него и перешел.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
А я не буду понтоваться. Если делать шаблон надолго, чтобы парсить много и относительно часто, то парсинг строю через get и разбор регулярками. Но большинство доноров перебирается единожды в ПМ так и не доходя до полноценного шаблона и этот помощник экономит кучу времени. Однозначно ЗА! Помощник помогает.
P.S.: Да и 90% пользователей зенки, насколько я понимаю, пишут все на стандартных кубиках, но стесняются в этом признаваться, потому что почему-то считается зазорным не писать ботов на C#. А, если я правильно понимаю концепцию продукта, он позволяет программировать даже тем людям, которые только вчера клавиатуру запомнили.
Не понял, как откопал эту тему.. Кстати, я в интерфейсе зенки как раз с 5.22 и разобрался и почему-то мне казалось, что эта полезняшка должна была быть там с самых первых версий
 
  • Спасибо
Реакции: GreenWay и Range8Hero

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Гет запрос и через регулярки, а иногда есть там спарсить, на запись поставил, текст выделил и спарсил.
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
От знатока своего дела неторопливое описание с подробностями, как собирать данные, как противодействовать сбору данных.
vc.ru/services/87999-prostaya-instrukciya-kak-zashchitit-svoy-sayt-ili-internet-magazin-ot-parsinga .
На vc.ru по запросу "парсинг" стоит по диагонали просмотреть заголовки.
 
Последнее редактирование:

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Подскажите, а почему не используете встроенные методы парсинга через C#?
Когда парсинг на запросах, нет возможности использовать встроенный xpath, т.к. он работает (или работал) только во вкладке.

Помощник использую активно в простых шаблонах, пусть чуть медленнее, но удобно и быстро. Где ошибается, перехожу на C#.
Часто важна именно скорость разработки, оптимизации потом будем делать.

Так я уже сравнивал скорость простой генерации порядкового номера ID.
На C# гораздо быстрее, чем на кубиках, но на кубиках оно просто работает, этого часто достаточно.

Так первую версию просто сделал на кубиках и подождал пару минут вместо доли секунды, удивился скорости, подумал что нужно разобраться.
Вначале спарсил сайт, только потом вернулся и сделал заготовку.

Поэтому я за готовые встроенные решения, гибкость и скорость будет после, если она там нужна.
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 472
Благодарностей
575
Баллы
113
Если браузер, то отладка в Хроме, там составляю Xpath и потом переношу на C# используя методы ZP
Если запросы, то всё тоже самое, только через HtmlAgilityPack
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
  • Спасибо
Реакции: molotok и Meteorburn

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Регулярки. Особенно после реализации поддержки групп стало вообще замечательно. Для особо запущенных случаев - xPath.
 
Статус
Закрыто для дальнейших ответов.

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)