Является ли Erlang правильным выбором для веб-сканера? - PullRequest
12 голосов
/ 05 февраля 2012

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

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

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

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

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

Ответы [ 3 ]

8 голосов
/ 06 февраля 2012

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

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

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

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

3 голосов
/ 06 февраля 2012

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

3 голосов
/ 06 февраля 2012

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

  1. Не используйте регулярные выражения для разбора HTML, вместо этого используйте XPATH .
    HTML, хотя и структурирован,все еще довольно трудно анализировать в диком виде, а регулярные выражения довольно медленны и ненадежны для синтаксического анализа HTML.и какая ваша политика повторного посещения .
  2. Найдите лучшую политику выбора для вас и выполните ее.

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

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