В чём лучше написать парсер?

зная алгоритм работы парсера можно обойтись даже без регулярок
Это как? SAX - парсер не под все подходит. Из текста - дроблением и перебором, не самый оптимальный вариант.
 
Писать на том, на чем умеешь, я подобную штуку делал на delphi, c компонентом chromium. Кто то писал про laravel, да он действительно крут и хорошо поддерживается.
 
Если проект несложный и "для себя" то, по большому счёту, нет разницы в чём писать. А знакомые инструменты помогут сэкономить время. Я, например, делал на c#, на python и как-то раз даже на базе GoogleSpreadsheet (JavaScript)
 
А есть примеры простых но качественных парсеров html кода на java?
 
Писать на том, на чем умеешь, я подобную штуку делал на delphi, c компонентом chromium. Кто то писал про laravel, да он действительно крут и хорошо поддерживается.
оО, а зачем целый Ларавел под парсер ?
 
Для совсем нубов есть BrowserAutomationStudio это что-то типа фреймворка для тех кто дуб-дубом в кодинге, по сути графическая среда разработки с часто используемыми шаблонами действий с эмуляцией браузера, парсит все что хошь, итоговый скрипт можно в отдельное приложение выкатить с нужными галочками и полями. Плюс оно бесплатно и вроде даже готовое по вашей задаче лежит на их форуме
 
Под веб очень неплоха библиотека beautifulsoup, правда на пайтоне
 
Парсер или граббер? В любом случае, все зависит от задачи, что и откуда нужно грабить и что именно нужно спарсить. Если контент для сайта, бэкэнд вашего сайта на php, python или java - соответственно, на том и пишите, учитывая ваши знания и возможность их применить. Если фронтэнд на html, xml, графические форматы или что-то еще, то выбираете соответствующие для типа док-та инструменты. Я для граббинга и парсинга контента использую по старинке php+curl/file_get_contents+прокси+регулярки. Иногда нужно распарсить XML или что-то еще - для всего давно существуют соответствующие библиотеки и классы. Если хочется свое - так же не проблем написать, т.к. масса примеров реализации и решения смежных задач. Все они, так или иначе, шаблонные. У меня масштабы не шибко большие, примерно 3000-30000 запросов в месяц для каждого ресурса, но для автоматического парсинга+синонимайзинга+перевода на другие языки - вполне хватает. Время, затрачиваемое на настройку под новые источники контента, минимально. Для более крупных масштабов, разумеется, php будет недостаточно. Питон + многопток решает большинство задач такого рода за довольно короткий период. Например, крупные массивы данных, их анализ и обработка. И в этом плане Питон довольной универсальный инструмент. Под него и IDE есть для создания GUI. Если правильно помню, то в QT, вроде бы, есть. Можно под питон веб-сервер поднять, написать бэкэнд сайта на питоне. И вообще, сегодня вопрос не стоит в том, на чем писать. Инфы, библиотек, средств и возможностей вагон... только времени на все хватало бы еще. Не вижу никаких трудностей углубленно пройтись по C#, Python, Java, PHP, C++, актуальные или специализированные фрэймворки под них, получив и базу, и опыт реализации одного и того же инструмента в разных средах. На это можно потратить и год, и два, но вы уже будите понимать, для каких задач и целей какую платформу вам будет лучше применить. Гораздо больше вы потратите времени, если будите лениться и откладывать в дальний ящик. И, безусловно, не столько важно на чем вы напишите граббер или парсер, на сколько важно, как вы напишите. Не городите огород там, где в нем нет смысла. В граббинге и парсинге важна скорость получения готовых для использования или вторичной обработки данных. В тоже время, если вы грабите контент с чужих ресурсов, то важно понимать, что из-за нагрузки от частоты ваших запросов, вашу машину заблочат, как минимум по айпи, а как максимум по поведенческим сигнатурам, закроют доступ, либо ограничат таким образом, чтобы процесс граббинга занимал у вас кучу времени, что негативно сказывалось бы на рентабельности ваших операций. Потому, особенно если речь о крупных объемах, следует продумывать всевозможные негативные исходы, в т.ч. при продумывании логики и написании кода, независимо от выбранного вами языка.
 
Инструмент зависит от задачи конечно. Для некоторых случаев может быть удобно не кодить, а воспользоваться content downloader или datacol
 
Назад
Сверху