用file_get_contents抓取网页乱码的2种解决方式
2017-12-12 10:59
645 查看
今天自己在写一个程序,抓取别人的网页,之前公司有些功能也会需要,但是今天在抓取网页的时候发现了一个问题 用file_get_contents抓取网页发现如截图所示的乱码情况
于是用转换编码
之前遇到就算乱码也是网页编码的问题,html标签页不会有问题,问题还是没有解决
于是网上找了一下
原因:说是获取的头部信息当中有Content-Encoding: gzip说明内容是GZIP压缩的
然后我试着抓取了自己的博客,发现可以正常抓取,头部信息中也带有Content-Encoding: gzip,为什么会这样就不清楚了,之后在解决
①、服务器安装zlib库
②. 使用CURL代替file_get_contents
自此问题解决了,继续下面的程序
QQ交流群:136351212
原文地址:http://www.phpsong.com/1404.html
今天自己在写一个程序,抓取别人的网页,之前公司有些功能也会需要,但是今天在抓取网页的时候发现了一个问题 用file_get_contents抓取网页发现如截图所示的乱码情况
于是用转换编码
之前遇到就算乱码也是网页编码的问题,html标签页不会有问题,问题还是没有解决
于是网上找了一下
原因:说是获取的头部信息当中有Content-Encoding: gzip说明内容是GZIP压缩的
然后我试着抓取了自己的博客,发现可以正常抓取,头部信息中也带有Content-Encoding: gzip,为什么会这样就不清楚了,之后在解决
①、服务器安装zlib库
②. 使用CURL代替file_get_contents
自此问题解决了,继续下面的程序
QQ交流群:136351212
查看原文:http://www.phpsong.com/1404.html
于是用转换编码
$contents = iconv("gb2312", "utf-8//IGNORE",$contents);
之前遇到就算乱码也是网页编码的问题,html标签页不会有问题,问题还是没有解决
于是网上找了一下
原因:说是获取的头部信息当中有Content-Encoding: gzip说明内容是GZIP压缩的
然后我试着抓取了自己的博客,发现可以正常抓取,头部信息中也带有Content-Encoding: gzip,为什么会这样就不清楚了,之后在解决
下面我推荐2种解决方法:
①、服务器安装zlib库$contents = file_get_contents("compress.zlib://".$url);
②. 使用CURL代替file_get_contents
function curl_get($url, $gzip=false){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); if($gzip) curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里 $content = curl_exec($curl); curl_close($curl); return $content; }
自此问题解决了,继续下面的程序
QQ交流群:136351212
原文地址:http://www.phpsong.com/1404.html
今天自己在写一个程序,抓取别人的网页,之前公司有些功能也会需要,但是今天在抓取网页的时候发现了一个问题 用file_get_contents抓取网页发现如截图所示的乱码情况
于是用转换编码
$contents = iconv("gb2312", "utf-8//IGNORE",$contents);
之前遇到就算乱码也是网页编码的问题,html标签页不会有问题,问题还是没有解决
于是网上找了一下
原因:说是获取的头部信息当中有Content-Encoding: gzip说明内容是GZIP压缩的
然后我试着抓取了自己的博客,发现可以正常抓取,头部信息中也带有Content-Encoding: gzip,为什么会这样就不清楚了,之后在解决
下面我推荐2种解决方法:
①、服务器安装zlib库$contents = file_get_contents("compress.zlib://".$url);
②. 使用CURL代替file_get_contents
function curl_get($url, $gzip=false){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); if($gzip) curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里 $content = curl_exec($curl); curl_close($curl); return $content; }
自此问题解决了,继续下面的程序
QQ交流群:136351212
查看原文:http://www.phpsong.com/1404.html
相关文章推荐
- 用file_get_contents抓取网页乱码的2种解决方式
- php用file_get_contents方法抓取网页数据出现乱码的解决方法
- PHP中使用file_get_contents抓取网页中文乱码问题解决方法
- file_get_contents抓取网页乱码的解决
- 解决PHP中file_get_contents抓取网页中文乱码问题
- file_get_contents抓取网页乱码的解决
- PHP中使用file_get_contents抓取网页中文乱码问题解决方法
- PHP中使用file_get_contents()抓取网页乱码的问题
- file_get_contents 抓取网页乱码。
- php file_get_contents抓取Gzip网页乱码的三种解决方法
- php file_get_contents抓取Gzip网页乱码的三种解决方法
- file_get_contents与simple_load_file的时候乱码怎么解决
- file_get_contents网页抓取
- php发送Http请求,抓取网页数据方法(cURL,file_get_contents,snoopy)
- file_get_contents获取不到网页内容的解决方法
- PHP中用file_get_contents抓取网页
- file_get_contents获取不到网页内容的解决方法
- javascript 前段 解决get 方式乱码
- file_get_contents获取远程网页内容函数
- fopen、file_get_contents方式set head