php curl抓取网页指定内容(做过_get_contents与curl效率及稳定性详细分析介绍)

优采云 发布时间: 2021-11-13 20:02

  php curl抓取网页指定内容(做过_get_contents与curl效率及稳定性详细分析介绍)

  本文文章是对file_get_contents和curl的效率和稳定性的详细分析和介绍。有需要的朋友可以参考

  我做过很多抓取其他网站内容的产品,习惯了方便快捷的file_get_contents功能,但总是遇到获取失败的问题。虽然按照手册中的例子设置了超时时间,但大多数时候它不会起作用:

  复制代码代码如下:

  $config['context'] = stream_context_create(array('http' => array('method' => “GET”,

  'timeout' => 5//这个超时时间不稳定,经常不起作用

  )

  ));

  这时候再看服务器的连接池,会发现一堆类似的错误,让你头疼:

  file_get_contents(***): 无法打开流...

  作为最后的手段,我安装了 curl 库并编写了一个函数替换:

  复制代码代码如下:

  函数 curl_file_get_contents($durl){

  $ch=curl_init();

  curl_setopt($ch, CURLOPT_URL,$durl);

  curl_setopt($ch, CURLOPT_TIMEOUT,5);

  curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);

  curl_setopt($ch, CURLOPT_REFERER,_REFERER_);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

  $r=curl_exec($ch);

  curl_close($ch);

  返回$r;

  }

  这样,除了真正的网络问题外,没有更多的问题。

  这是其他人对 curl 和 file_get_contents 的测试:

  File_get_contents 需要几秒钟才能获取:

  2.31319094

  2.30374217

  2.21512604

  3.30553889

  2.30124092

  curl 使用的时间:

  0.68719101

  0.64675593

  0.64326

  0.81983113

  0.63956594

  是不是差距很大?哈哈,根据我的经验,这两个工具不仅速度不同,稳定性也不同。推荐对网络数据抓取稳定性要求高的朋友使用上面的curl_file_get_contents函数,不仅稳定快速,还能假冒浏览器欺骗目标地址!

  以上就是分析file_get_contents和curl的效率和稳定性的详细内容。更多详情请关注其他相关html中文网站文章!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线