php多线程抓取网页(PHP利用CurlFunctionsFunctions并发多线程地址)

优采云 发布时间: 2021-12-18 19:16

  php多线程抓取网页(PHP利用CurlFunctionsFunctions并发多线程地址)

  PHP 可以使用 Curl Functions 完成各种文件传输操作,比如模拟浏览器发送 GET、POST 请求等,但是 PHP 语言本身不支持多线程,所以开发爬虫程序的效率是不高。这时候往往需要Curl Multi Functions来实现对多个URL地址的并发多线程访问。既然Curl Multi Function这么强大,那我可以用Curl Multi Functions来写并发多线程下载文件吗?当然,我的代码如下:

  代码2:将得到的代码先放入变量中,再写入文件

  //上面的do有问题,这样写会报错

  //改变do循环开始

  做{

  $mrc = curl_multi_exec($mh,$active);

  } while ($mrc == CURLM_CALL_MULTI_PERFORM);

  while ($active and $mrc == CURLM_OK) {

  if (curl_multi_select($mh) != -1) {

  做{

  $mrc = curl_multi_exec($mh, $active);

  } while ($mrc == CURLM_CALL_MULTI_PERFORM);

  }

  }

  //改变do循环结束

  因为$active要等到所有url数据被接受后才变为false,这里用curl_multi_exec的返回值来判断是否有数据。有数据时,会不断调用curl_multi_exec,如果没有数据,则进入select阶段。 , 新数据可以被唤醒继续执行。这里的好处是没有了不必要的 CPU 消耗。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线