Perl, mod_perl2或CGI的网页抓取服务



我要设计一个开源的web服务,它应该从多个(目前是三个)web站点收集("web-抓取")一些数据。

网站不公开任何web服务或API,它们只是发布网页。

数据将"实时"收集任何客户端请求的所有网站并行,然后将被解析为XML返回给客户端。

服务器操作系统为Linux。

客户端最初将只是我的一个Android应用程序。

如果项目成功,并发客户端可能在100或更多…; -)。

目前我倾向于采用:

  • perl(服务语言)
  • mod_perl2 with ModPerl::Registry(用于Apache嵌入式快速perl解释器)
  • perl module CHI::Driver::FastMmap(用于现代和快速缓存处理程序)
  • perl module Coro(用于异步事件循环以并行放置许多请求)

由于我认为项目上的规范可能具有一般用途和兴趣,并且由于我在Coro mod_perl2的组合使用中遇到了许多问题,我问:

我的收养偏好匹配得好吗?

您是否看到任何不兼容或潜在的问题?

你有什么建议来加强(这个顺序)吗?

  • 组件间兼容性
  • 实现的整洁性
  • 可维护性
  • 表演

您可能不想再为任何新项目使用mod_perl进行开发了。你真的想使用一些基于Plack的东西,或者甚至是Plack本身。如果你想使用Coro,使用AnyEvent(比如基于Twiggy的后端)可能是最有意义的(尽管你可能想在它前面放一个反向代理)。

你喜欢用apache吗?
如果是这样,忘记Coro,让apache处理并发;预加载你的模块和配置,并编写一个超级高效的apache RequestHandler。(只要apache2+modperl2可用,我就会这样做。)
如果没有,开始学习Plack,它是服务器无关的。

如果您选择第一种方式,我建议您避免使用传统的CGI,而采用CGI::Application,它几乎可以提供CGI的轻便性和速度,但具有更好/更现代的开发环境和框架(并且与plack兼容)。

相关内容

  • 没有找到相关文章

最新更新