php curl 大量数据采集

phpcurl大量数据采集时比如有500个页面我是用FOR循环的方法但是当页面特别多时,FOR就打不开了请问有其它方法吗?能不间断的批量采集呢?... php curl 大量数据采集时
比如有500个页面

我是用FOR 循环的方法
但是当页面特别多时,FOR就打不开了

请问有其它方法吗?
能不间断的批量采集呢?
展开
 我来答
yukon12345
2013-02-03 · TA获得超过1713个赞
知道大有可为答主
回答量:1827
采纳率:66%
帮助的人:991万
展开全部
这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。
追问
您好。我试了。
这样有很大改善
但是当JS页面循环过大时,一样会卡在那里的

比如,我有几万个词
每个词从又搜出几万个页面
每个页面上有很多网址
然后进这个网址里
追答
js不是for循环,是用定时器来执行。发一个请求,然后ajax等待完成,再下一个。网址的筛选用js处理比php更好用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式