php curl抓取网页指定内容(做过_get_contents与curl效率及稳定性详细分析介绍)
优采云 发布时间: 2021-11-13 20:02php 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中文网站文章!