利用 curl 平行抓取多個網頁
如果一次要抓多個網頁,如果使用一個一個 curl 慢慢抓的話,實在是太慢了。假設一個網頁要 0.3 sec 的話,十個網頁需要抓時就要 3 sec 了。利用這個 curl 的 mutli handle 功能,可以同時抓取 N 個網頁,這樣抓取網頁速度會有明顯的提昇。
其實也可以利用這個方法,來試試自已的網頁的存取速度怎麼樣。不過如果一次開 50 個以上,感覺抓取速度會受到影響。所以還是別同時抓取太多網頁比較好。
範例程式碼如下:
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);
?>
執行結果:
whatup@whatup:/tmp$ php curl_multi.php int(222) int(9490)
標題可以改成如何用 php 的 curl 寫 DoS 小程式