我打算为NLP项目编写一个webcrawler,每次在特定的时间间隔内读取论坛的线程结构,并用新内容解析每个线程。通过正则表达式,提取作者,新帖子的日期和内容。然后将结果存储在数据库中。
用于抓取工具的语言和平台必须符合以下条件:
经过一些研究后,我认为Erlang可能是一个合适的候选者,但我读到它并不是很好的字符串处理(以及正则表达式匹配)。我对维护因素也没有任何满足感。
Erlang对于上述场景是一项很好的技术吗?如果没有,那么什么是一个好的选择呢?
答案 0 :(得分:8)
我也在评估erlang用作网络爬虫,到目前为止看起来还不错。
现有许多有用的模块:HTML parser,HTTP client,XPath,regex,cache。
other people对同一个用例感兴趣,因此您可以从中学习。
然而,如果这只是一个一个项目,我推荐Python / Ruby / Perl,因为它将更容易开始。
答案 1 :(得分:3)
如果你对erlang熟悉和熟悉,那么如果我是你,我会坚持下去,虽然我不熟悉erlang。有了这些,我会给你一些指示:
Web爬网程序是一个相当复杂的系统,您必须关注速度,性能,可伸缩性和并发性。一些最着名的抓取工具是用C++ and Java编写的,但我没有听说过任何用erlang编写的抓取工具。
答案 2 :(得分:3)
Erlang对此很好。它的正则表达式库(几乎所有)工作委托给PCRE,这应该足够快。但避免使用字符串并使用二进制文件!它们都使用更少的内存,并且转换为C字符串的速度更快。