php curl采集,服务器gzip压缩返回数据怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl采集,服务器gzip压缩返回数据怎么办相关的知识,希望对你有一定的参考价值。
参考技术A 只需要设置一下CURLOPT_ENCODING属性即可,如下:curl_setopt($ch, CURLOPT_ENCODING, "gzip"); //指定gzip压缩
更多php cURL内容请搜索我的博客《PHP cURL实现模拟登录与采集使用方法详解教程》 参考技术B 一般服务器不会胡乱返回gzip压缩的数据,一般是客户端请求的头部里包含你浏览器能接受的压缩方式, Accept-Encoding:gzip,deflate,sdch 这里是gzip 、deflate、sdch这三种方式
PHP - curl实现采集
1、开启curl支持
由于php环境安装后默认是没有打开curl支持的,需修改php.ini文件,找到;extension=php_curl.dll,把前面的冒号去掉,重启服务即可;
2、使用curl进行数据抓取
// 初始化一个 cURL 对象
$curl = curl_init();
// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, ‘http://www.kugou.com/yy/html/special.html‘);
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 运行cURL,请求网页
$data = curl_exec($curl);
// 关闭URL请求
curl_close($curl); //print_r($data);
3、通过正则匹配找到关键数据
//$data是curl_exec返回的的值,即采集的目标内容
preg_match_all("/<div class=\"top\"><em>(.*)<\/em><strong><a title=\"(.*)\" href=\"(.*)\">.*<\/a>/",$data, $arr); print_r($arr);
最后入库等处理操作....
以上是关于php curl采集,服务器gzip压缩返回数据怎么办的主要内容,如果未能解决你的问题,请参考以下文章