Monthly Archives: July 2011

采集时执行执行时间太长的问题

做采集时,一般使用file_get_contents 或者 curl

1、curl可以使用 CURLOPT_TIMEOUT 设置超时时间,如
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 表示5秒钟后停止获取指定页面。
这个问题可以参考 同步的方式执行还是异步的?CURLOPT_TIMEOUT有什么作用

2、使用file_get_contents 没有很好的参数,网上有部分代码可以参考

当你批量抓取的时候经常会出现网络的问题。可以尝试多次抓取
这也提醒我们,做特别需要稳定性的程序是一定要考虑网络的不稳定性
$html = false;
$try_count = 3;
for($i=0; $i<3 and $html === false; $i++){ $html = file_get_contents($url); }

file_get_contents设置响应时间timeout的方法