ruby - Ruby 中的网络爬虫 : How to achieve the best perfomance?

标签 ruby multithreading performance web-crawler multiprocessing

我正在编写一个应该能够同时解析多个页面的网络爬虫。我使用 Nokogiri 进行解析,这非常好,可以解决我所有的任务,但我不知道如何获得更好的性能。

我使用线程同时发出许多 open-uri 请求,这使处理速度更快,但似乎距离我可以从单个服务器实现的潜力还很远。我应该使用多个进程吗?单个 ruby​​ 应用程序可以启动的线程和进程的限制是什么?

换句话说:如何在这种情况下实现最佳性能。

最佳答案

我很喜欢Typhoeus and Hydra一次处理多个请求。

Typhoeus是http客户端,Hydra是处理多个请求的部分。这些示例很好,请通读一下。

关于ruby - Ruby 中的网络爬虫 : How to achieve the best perfomance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687825/

相关文章:

ruby-on-rails - Rails 4 + 自定义设计属性——ParameterSanitizer 错误

ruby-on-rails - 如何在 rails 中加载这个 yml 文件?

c - 如何在 c 中测试线程安全的实现?

c - GCC 在现代处理器上的比较和交换保证是什么

c++ - C++ 中的 std::thread 与 Go 语言中的 goroutine?

c++ - Windows下线程创建和终止需要多长时间?

.net - Visual Studio 2010 - 构建性能问题后(应用程序启动需要很长时间)

Ruby CSV - 尝试用双引号括起输出,得到 """Hello World """而不是 "Hello World"

ruby-on-rails - rails : Could not locate Gemfile

php - 如何在字符串中搜索数千个可能的关键字