因为web服务器有运行时间限制,所以只要采集执行时间太长都会导致程序中断,需要修改web服务器的超时时间
IIS服务器:
桌面>计算机>右键>管理>服务和应用程序>IIS>根目录>FastCGI 设置>双击"php-cgi.exe">活动超时
apache服务器:
apache目录confextrahttpd-default.conf,修改Timeout
nginx服务器:
nginx目录conf
ginx.conf,修改 fastcgi_connect_timeout
修改以上的参数值可让采集不再中断,修改完后记得重启服务器!
其他服务器请自行百度
如果你是虚拟主机无法修改配置,唯一方法就是设置采集数量,每次不要采集太多,一般web服务器运行时间为30秒,尽量不要超时!
网页自刷新执行采集,可以做到无人值守一直抓取。
代码大概如下:设置的2分钟采集间隔,下面代码设置的125秒刷新一次。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="refresh" content="125"> <div id='numDiv'>...</div> <script src="http://www.xxx.cn/caiji/index.php?s=/admin/Task/collect&id=3"></script> <script type="text/javascript"> var num=125; var interval=setInterval(function(){ if(num==0){ clearInterval(interval); } numDiv.innerHTML=num--; numDiv.innerHTML=numDiv.innerHTML+"秒后刷新本页面"; },1000); </script> </body>