我试图使用CURLOPT_URL抓取页面数据,这样做我已经使用了下面的代码,这对其他页面工作正常(除了页面使用相对路径到其css / js的情况,在这种情况下那些不要加载)。
function grab_page($site){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_TIMEOUT, 40000000);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start();
return curl_exec ($ch);
ob_end_clean();
curl_close ($ch);
}
echo grab_page("$page_to_get");
但是当我加载页面时,我会返回一个像这样的乱码屏幕,但是整个页面,当我查看源代码时也是如此。
通过我的浏览器查看页面的来源,他们似乎正在使用charset=utf-8"
,我不确定它是否与它有任何关系?有任何想法吗 ?
答案 0 :(得分:1)
通话:
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
如果知道编码被gzip压缩或者你说明,将修复它
curl_setopt($ch,CURLOPT_ENCODING , "");
应该卷曲谈判编码本身(为什么这不是默认值超出我)