针对高效网络爬虫的语言建议

ric*_*ins 2 javascript asynchronous web-crawler node.js

我正在寻找一种编写高效网络爬虫的语言.我重视的事情:

  • 富有表现力的语言(不要让我只是通过静态打字箍)
  • 有用的库(基于CSS选择器的html解析器会很好)
  • 最小内存占用
  • 可靠的语言运行时和库

我试过node.js. 我理论上喜欢节点.Javascript很有表现力.您可以使用jQuery来解析html.Node的异步性质允许我并行处理许多url而不处理线程.V8很好用,也很快解析.

在实践中,节点不适合我.我的过程不断崩溃.总线错误,事件管理器中的异常......等

我已经做了很多Ruby开发,所以我不介意使用Ruby 1.9的协程(光纤?),只要我不会遇到类似的VM /库稳定性问题.

其他建议?

Ivo*_*zel 6

使用Node.js,并修复崩溃的任何内容.几个月来它一直在我的Ubuntu盒子上运行没有任何问题.

对于库,我建议使用YUI3而不是jQuery,它可以让你轻松地在几分钟内构建一个webcrawler/scraper,如果你不相信我从YUIConf2010 看这个Talk,那就是40分钟,但这都是关于代码的.

Dav Glass在展示它是多么容易以及你需要多少代码方面表现得非常出色,是的,在谈话中有不同版本的jsdom存在一些问题,但是在11月初就已经有了这样的讨论,其中很多都应该有已经修好了.

您可以在他的GitHub页面上查看谈话中的所有内容.
这是他的刮刀,从Digg获得当前的新闻头条.

说真的,让Node.js在你的系统上运行是值得的,因为最终你在服务器端获得了YUI3的所有功能.