我需要抓取(使用scrAPI) 400+网页ruby,我的实际代码是非常连续的:
data = urls.map {|url| scraper.scrape url }
实际上,代码有点不同(异常处理和其他东西)。
我怎么才能让它更快呢?如何并行化下载?
发布于 2009-02-17 17:02:58
th = []
data = []
dlock = Mutex.new
urls.each do |url|
th << Thread.new(url) do |url|
d = scraper.scrape url
dlock.synchronize { data << d }
end
end
th.each { |t| t.join }
塔达!(注意;从内存中写入,未测试,可能会吃掉你的小猫,等等)
编辑:我想一定是有人写了一个通用的版本,所以他们就写了:http://peach.rubyforge.org/ --享受!
发布于 2009-02-17 17:04:31
https://stackoverflow.com/questions/559420
复制相似问题