powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Универсальный парсер web сайтов
16 сообщений из 16, страница 1 из 1
Универсальный парсер web сайтов
    #40040921
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует мнение знающих людей насколько трудоемким будет написание такого парсера.

Технические подробности такие. Стек .Net, язык реализации C#. Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров:

1. URL web страницы которую парсим
2. Файл настроек парсера, который рассказывает как парсить этот сайт.
3. Путь к Excel файлу в который записываются распарсенные данные.

Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера.

Какие технологии, фреймворки лучше использовать для такой задачи?
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40040935
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Технические подробности такие.
- это не "технические подробности", это вода. Извлекать данные из HTML не проблема (и из json не проблема). Вся соль в том, что на разных сайтах данные могут быть расположены сильно по-разному, и писать универсальный парсер, который понимает любые правила, можно до бесконечности. А разрабы сайтов тоже не будут на месте сидеть, и будут все свое добро по 100 раз переписывать.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40040943
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделаю за месяц
Бюджет 1млн руб

работу яваскрипта в результирующей странице не гарантирую, т.к может быть заточен под домен и сервер
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40040969
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты не гугл и не яндекс, то тебя забанят на том сайте, в лучшем случае, в худшем - гавном накормят. Все уважающие себя сайты отслеживают таких парсеров.

Правильных путь: обратиться к владельцам сайта и спросить как по их мнению правильно брать у них инфу.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40041010
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Интересует мнение знающих людей насколько трудоемким будет написание такого парсера.

Особых проблем нет - selenium + маленький скрипт, который нажмет нужные кнопки, почти :) автоматом делается (если капч и прочего колдунства нет)
Технические подробности такие. Стек .Net, язык реализации C#.

Это не имеет значения
Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров:

1. URL web страницы которую парсим
2. Файл настроек парсера, который рассказывает как парсить этот сайт.
3. Путь к Excel файлу в который записываются распарсенные данные.

Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера.

Какие технологии, фреймворки лучше использовать для такой задачи?
С п.1 - проблем почти не будет, по сравнению с остальным
С п.2 - у Вас будет DOM (если п.1 отработает), его можно превратить в xml, потом обработать xslt, который можно понимать как файл настройки парсера.
По результатам п.2 можно получить csv, который легко переносится в xls

Вот с п.2 я вижу небольшую проблему - написать xslt, который выполнит необходимое, может быть труднее, чем создать аналогичный код на императивном языке (C#, например), но, формально, ТЗ соблюдено :)
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40041021
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Забыл написать: похоже, в нашем мире существует соотношение неопределенностей - произведение универсальности на эффективность должно быть меньше некоторого проклятого числа :)
Нужно это проклятое число оценить или измерить.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40041246
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064

Особых проблем нет - selenium + маленький скрипт, который нажмет нужные кнопки, почти :) автоматом делается (если капч и прочего колдунства нет)


Selenium показывает окно браузера? Если да, то не пойдет

автор
С п.2 - у Вас будет DOM (если п.1 отработает), его можно превратить в xml, потом обработать xslt, который можно понимать как файл настройки парсера.

Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40041311
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt


Selenium показывает окно браузера? Если да, то не пойдет


У него, вроде, есть headless режим


Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет.
Нет, прямо не получится, нужно сначала конвертировать в xml, как раз, чтобы теги стали нормальными - но это не очень сложная задача, по сравнению с выдумыванием нового языка для конфигурирования парсера.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40041378
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Selenium показывает окно браузера? Если да, то не пойдет
Если страница сначала загружается без данных, а потом наполняется данными с помощью javascript, то альтернатив у вас нет. Или Selenium, или сосите лапу. Если страница с данными приходит, то можно в теории ее распарсить... В java для этого есть библиотека jsoup, а что есть в вашем дотнете, поищите самостоятельно...
x1ca4064
У него, вроде, есть headless режим
Я пробовал его года 3 - 4 назад - глючил безбожно (в частности, неправильно находил элементы по CSS селектору). Интересно, стало ли лучше с тех пор...
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40043303
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет

парсить HTML незачем, с DOM нужно работать

не нравятся окна - electron можно использовать
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40069454
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Интересует мнение знающих людей насколько трудоемким будет написание такого парсера.

Технические подробности такие. Стек .Net, язык реализации C#. Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров:

1. URL web страницы которую парсим
2. Файл настроек парсера, который рассказывает как парсить этот сайт.
3. Путь к Excel файлу в который записываются распарсенные данные.

Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера.

Какие технологии, фреймворки лучше использовать для такой задачи?

Увы, Вы ничего не поняли.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40069732
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
парсить статичные страницы легко, изменения нужно делать минимум, если страница догружается после загрузки, нужно искать JSON, по сути разбирать сайт и смотреть GET / POST и перехватывать ответы

Делал на Python(Requests, re)
Можно посмотреть в сторону Scrapy for Python
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40077334
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в моих завалах валяется такой "универсальный" парсер, где настройка на парсинг сайта делается .. оператором, тыкая в нужные блоки на страничках сайта. По мере тыканья, ему показывается результат парсинга "что получится" и он может скорректировать регексп самостоятельно, даже не особо в нем разбираясь ибо есть "подсказки" как это поправить..
Результат сохраненной "инструкции" парсеру можно натравить на другую подобнуб страничку и убедиться что подводных камней нет .. или есть.
Парсер работает в фоновом режиме (писан на ПХП), умеет регулировать нагрузку на сайт, работать через проски и внешние анонимайзеры, для чего у него есть спец кнопка "поиск анонимайзера", которая по внутренней СУБД (пополняется кроном отдельным процессом) тестится запросом самому себе с оценкой времени прохождения запроса. Есть режим карусели, где случайное количество запросов к сайту разбрасывается через десяток наилучших внешних прокси случайным образом.
Результат парсится согласно инструкции в EAV СУБД на Мускуле, и потом его можно "просмотреть" и скорректировать, если что-то пошло не так.
Умеет парсить постраничный вывод через разбор пагинаторов.

Ничего особо сложного там не было, наращивался по мере развития задачи, примерно полгода. Сделан полностью на регексп подходе.

Основное назначение - забор прайсов товарных позиций поставщиков товарно-ценового агрегатора (возьмите с сайта, нам лениво обновлять свои ценники на вашем портале), успешно применялся для парсинга форумов, с раскладкой "чье сообщение", с последующим синт. и фразеологическим анализом содержимого .. какое-то время пытался писать "автобота" для болтания на форумах.

Устарел, т.к. сейчас проще запросить стороннее АПИ, чем изголяться и держать оператора. Да и .. обновление сайтов часто желает лучшего .. смысл качать то, что давно устарело? А устаревает оно примерно уже за неделю.

В общем .. в современных реалиях нафиг не нужно. Писалось в 2012-2014гг, где-то там и уже тогда становилось очевидным, что это бесполезная хотелка Заказчика..
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40077526
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
парсить с помощь regex'а сайты, это такой себе способ, уже 1000 копий на этом поломаны, даже объяснять не хочу, почему. достаточно погуглить на этом форуме. не надо пытаться вырывать зубы через зад.
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40077530
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Если ты не гугл и не яндекс, то тебя забанят на том сайте, в лучшем случае, в худшем - гавном накормят. Все уважающие себя сайты отслеживают таких парсеров.

Правильных путь: обратиться к владельцам сайта и спросить как по их мнению правильно брать у них инфу.

Обычно те кто парсят - следуют определённому кодексу поведения. Этический краулинг.
Например - не создают слишком много реквестов в секунду. Не создают много коннектов.
И не заходят в области скрытые в robots.txt. Короче не создают проблем для владельцев
и сисадминов. Пример такого этического кодекса я находил в проекте crawly

https://hexdocs.pm/crawly/ethical_aspects.html#content

Чисто ради прикола я парсил sql.ru, собирая сведенья о мемберах в рамках классификации векторов
https://www.sql.ru/forum/1326141-1/voskresnyy-som-i-klassifikaciya-vektorov но проект я забросил
т.к. интерес пропал и сведений я не собрал. В качестве библиотеки использовал https://jsoup.org/
...
Рейтинг: 0 / 0
Универсальный парсер web сайтов
    #40077551
Kusanagi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eolt

3. Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера.

Вот это самый сложный момент парсинга. Какие данные - табличные (dataFrame)? - тогда как именовать поля создаваемых объектов?или это одиночный скаляр/строка, которую надо получить. Тогда что делать дальше?

Проще руками писать парсеры под конкретную область, зашить в БД их имена и динамически вызывать по имени.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Универсальный парсер web сайтов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]