这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。
1 背景知识
2 libcurl 基础知识
3 libcurl两种模式
4 libcurl实例分析
1 背景知识:
11 基本网络通信cs模式,select 框架,网上例子很多下面只介绍epoll的难点其他内容请自行搜索
12 epoll 用法
121 基础知识:
在自己端准备write之前,通过epoll ctrl设置成epoll out
epoll in 是被动监听接收,epoll out是主动设置
122 epoll 模型:网上例子很多
这个是最简单异步,先发送--等待--接收,这种用法很少用了
>
是的,file_get_contents($url)是速度比较低的,很容易抓取失败。
应该用socket或curl来抓取。其中curl性能也比较低。最好用socket,不过前提是要抓取的页面所在服务器要支持socket,大多数是支持的。file_get_contents速度慢同时又不支持socket的服务器是极少见的。我可以写一个通用的socket抓取函数给你,代码比较长,你留下个email。
以上就是关于如何通过php的curl模拟ajax请求,获取其返回值全部的内容,包括:如何通过php的curl模拟ajax请求,获取其返回值、常用libcurl异步使用方法、file_get_contents($url)超时无法抓取网页,应对反应慢的服务器无法抓取到数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)