Подтвердить что ты не робот

Является ли Erlang правильным выбором для веб-браузера?

Я планирую написать webcrawler для проекта NLP, который читает в структуре потока форума каждый раз в определенном интервале и анализирует каждый поток с новым контентом. С помощью регулярных выражений извлекается автор, дата и содержание новых сообщений. Затем результат сохраняется в базе данных.

Язык и форматы, используемые для искателя, должны соответствовать следующим критериям:

  • легко масштабируется на нескольких ядрах и процессорах
  • подходит для высоких нагрузок ввода/вывода
  • быстрое соответствие регулярному выражению
  • легко поддерживать/немного операционных издержек

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

Является ли Erlang хорошей технологией для описанного выше сценария? А если нет, то какая хорошая альтернатива?

4b9b3361

Ответ 1

Я также оцениваю erlang для использования в качестве веб-искателя, и он пока выглядит хорошо.

Существует множество существующих полезных модулей: HTML-парсер, HTTP-клиент, XPath, regex, cache.

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

Однако, если это всего лишь один проект, я рекомендую Python/Ruby/Perl, потому что с ним будет проще начать работу.

Ответ 2

Если вы знакомы и комфортно с erlang, тогда я буду придерживаться его, если бы вы были вами, хотя я не знаком с erlang. С учетом этого я дам вам несколько указателей:

Веб-искатель - довольно сложная система для сборки, и вы должны быть обеспокоены скоростью, производительностью, масштабируемостью и concurrency. Некоторые из самых известных сканеров написаны в С++ и Java, но я не слышал о каких-либо сканерах, написанных в erlang.

Ответ 3

Эрланг отлично подходит для этого. Его делегаты библиотеки регулярных выражений (почти все) работают с PCRE, который должен быть достаточно быстрым. Но избегайте строк и вместо этого используйте двоичные файлы! Они используют гораздо меньше памяти и быстрее переходят на строки C.