|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Интересует мнение знающих людей насколько трудоемким будет написание такого парсера. Технические подробности такие. Стек .Net, язык реализации C#. Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров: 1. URL web страницы которую парсим 2. Файл настроек парсера, который рассказывает как парсить этот сайт. 3. Путь к Excel файлу в который записываются распарсенные данные. Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера. Какие технологии, фреймворки лучше использовать для такой задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2021, 16:13 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Технические подробности такие. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2021, 17:22 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
сделаю за месяц Бюджет 1млн руб работу яваскрипта в результирующей странице не гарантирую, т.к может быть заточен под домен и сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2021, 17:54 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Если ты не гугл и не яндекс, то тебя забанят на том сайте, в лучшем случае, в худшем - гавном накормят. Все уважающие себя сайты отслеживают таких парсеров. Правильных путь: обратиться к владельцам сайта и спросить как по их мнению правильно брать у них инфу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2021, 19:02 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Интересует мнение знающих людей насколько трудоемким будет написание такого парсера. Особых проблем нет - selenium + маленький скрипт, который нажмет нужные кнопки, почти :) автоматом делается (если капч и прочего колдунства нет) Технические подробности такие. Стек .Net, язык реализации C#. Это не имеет значения Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров: 1. URL web страницы которую парсим 2. Файл настроек парсера, который рассказывает как парсить этот сайт. 3. Путь к Excel файлу в который записываются распарсенные данные. Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера. Какие технологии, фреймворки лучше использовать для такой задачи? С п.1 - проблем почти не будет, по сравнению с остальным С п.2 - у Вас будет DOM (если п.1 отработает), его можно превратить в xml, потом обработать xslt, который можно понимать как файл настройки парсера. По результатам п.2 можно получить csv, который легко переносится в xls Вот с п.2 я вижу небольшую проблему - написать xslt, который выполнит необходимое, может быть труднее, чем создать аналогичный код на императивном языке (C#, например), но, формально, ТЗ соблюдено :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2021, 00:18 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt, Забыл написать: похоже, в нашем мире существует соотношение неопределенностей - произведение универсальности на эффективность должно быть меньше некоторого проклятого числа :) Нужно это проклятое число оценить или измерить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2021, 01:19 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
x1ca4064 Особых проблем нет - selenium + маленький скрипт, который нажмет нужные кнопки, почти :) автоматом делается (если капч и прочего колдунства нет) Selenium показывает окно браузера? Если да, то не пойдет автор С п.2 - у Вас будет DOM (если п.1 отработает), его можно превратить в xml, потом обработать xslt, который можно понимать как файл настройки парсера. Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2021, 15:58 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Selenium показывает окно браузера? Если да, то не пойдет У него, вроде, есть headless режим Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет. Нет, прямо не получится, нужно сначала конвертировать в xml, как раз, чтобы теги стали нормальными - но это не очень сложная задача, по сравнению с выдумыванием нового языка для конфигурирования парсера. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2021, 18:28 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Selenium показывает окно браузера? Если да, то не пойдет x1ca4064 У него, вроде, есть headless режим ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2021, 22:12 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Не знал, что с помощью XSLT можно парсить HTML. Как быть с незакрытыми html тегами? Браузеры такое пропускают, но парсер же упадет парсить HTML незачем, с DOM нужно работать не нравятся окна - electron можно использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:49 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt Интересует мнение знающих людей насколько трудоемким будет написание такого парсера. Технические подробности такие. Стек .Net, язык реализации C#. Парсер должен быть в виде DLL которую вызывает ERP система. В парсер передается следующий набор параметров: 1. URL web страницы которую парсим 2. Файл настроек парсера, который рассказывает как парсить этот сайт. 3. Путь к Excel файлу в который записываются распарсенные данные. Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера. Какие технологии, фреймворки лучше использовать для такой задачи? Увы, Вы ничего не поняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 19:52 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
парсить статичные страницы легко, изменения нужно делать минимум, если страница догружается после загрузки, нужно искать JSON, по сути разбирать сайт и смотреть GET / POST и перехватывать ответы Делал на Python(Requests, re) Можно посмотреть в сторону Scrapy for Python ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 17:46 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Где-то в моих завалах валяется такой "универсальный" парсер, где настройка на парсинг сайта делается .. оператором, тыкая в нужные блоки на страничках сайта. По мере тыканья, ему показывается результат парсинга "что получится" и он может скорректировать регексп самостоятельно, даже не особо в нем разбираясь ибо есть "подсказки" как это поправить.. Результат сохраненной "инструкции" парсеру можно натравить на другую подобнуб страничку и убедиться что подводных камней нет .. или есть. Парсер работает в фоновом режиме (писан на ПХП), умеет регулировать нагрузку на сайт, работать через проски и внешние анонимайзеры, для чего у него есть спец кнопка "поиск анонимайзера", которая по внутренней СУБД (пополняется кроном отдельным процессом) тестится запросом самому себе с оценкой времени прохождения запроса. Есть режим карусели, где случайное количество запросов к сайту разбрасывается через десяток наилучших внешних прокси случайным образом. Результат парсится согласно инструкции в EAV СУБД на Мускуле, и потом его можно "просмотреть" и скорректировать, если что-то пошло не так. Умеет парсить постраничный вывод через разбор пагинаторов. Ничего особо сложного там не было, наращивался по мере развития задачи, примерно полгода. Сделан полностью на регексп подходе. Основное назначение - забор прайсов товарных позиций поставщиков товарно-ценового агрегатора (возьмите с сайта, нам лениво обновлять свои ценники на вашем портале), успешно применялся для парсинга форумов, с раскладкой "чье сообщение", с последующим синт. и фразеологическим анализом содержимого .. какое-то время пытался писать "автобота" для болтания на форумах. Устарел, т.к. сейчас проще запросить стороннее АПИ, чем изголяться и держать оператора. Да и .. обновление сайтов часто желает лучшего .. смысл качать то, что давно устарело? А устаревает оно примерно уже за неделю. В общем .. в современных реалиях нафиг не нужно. Писалось в 2012-2014гг, где-то там и уже тогда становилось очевидным, что это бесполезная хотелка Заказчика.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2021, 10:33 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
парсить с помощь regex'а сайты, это такой себе способ, уже 1000 копий на этом поломаны, даже объяснять не хочу, почему. достаточно погуглить на этом форуме. не надо пытаться вырывать зубы через зад. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2021, 18:12 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
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/ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2021, 19:48 |
|
Универсальный парсер web сайтов
|
|||
---|---|---|---|
#18+
Eolt 3. Чтобы обучить парсер извлекать данные с нового сайта, нужно создать файл настроек для этого сайта, а не переписывать код парсера. Вот это самый сложный момент парсинга. Какие данные - табличные (dataFrame)? - тогда как именовать поля создаваемых объектов?или это одиночный скаляр/строка, которую надо получить. Тогда что делать дальше? Проще руками писать парсеры под конкретную область, зашить в БД их имена и динамически вызывать по имени. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2021, 02:36 |
|
|
start [/forum/topic.php?fid=16&msg=40040921&tid=1339656]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 277ms |
0 / 0 |