Ruby多進程並行抓取網頁

 

想研究一下各大網站首頁有多少個連接,因而用Ruby寫了一個腳本,用Beanstalk消息隊列,把任務放入Beanstalk中,同時開啓多個子進程,如20個,並行運行,同時抓取網頁,先抓取完成的進程再次讀取Beanstalk任務,繼續執行,直到沒有任務後,進程退出,主進程等待全部子進程退出後,打印抓取的消息。
Ruby的多線程實際是隻能跑在單cpu上,而且同一時刻cpu只處理一個線程,因此採用多進程抓取,消息隊列採用最簡單的Beanstalk,須要安裝Beanstalkd服務。
示例代碼主要抓取電商網站測試。
代碼能夠直接運行,須要ruby 1.9版本,1.9一下要稍微修改才能運行。