利用 curl 平行抓取多個網頁

如果一次要抓多個網頁,如果使用一個一個 curl 慢慢抓的話,實在是太慢了。假設一個網頁要 0.3 sec 的話,十個網頁需要抓時就要 3 sec 了。利用這個 curl 的 mutli handle 功能,可以同時抓取 N 個網頁,這樣抓取網頁速度會有明顯的提昇。

其實也可以利用這個方法,來試試自已的網頁的存取速度怎麼樣。不過如果一次開 50 個以上,感覺抓取速度會受到影響。所以還是別同時抓取太多網頁比較好。

範例程式碼如下: [code lang=”php”] 0); foreach($curl_obs as $curl_ob) { $content = curl_multi_getcontent($curl_ob); var_dump(strlen($content)); } foreach($curl_obs as $curl_ob) { curl_multi_remove_handle($mh, $curl_ob); } curl_multi_close($mh); ?> [/code]

執行結果: [code] whatup@whatup:/tmp$ php curl_multi.php int(222) int(9490) [/code]