采集网址时发现是乱码,但用chrome编码转换后还是乱码,于是确定不是编码问题。以下适合于http采集
找到原因是,user_agent的问题,需要curl模拟浏览器访问才能得到正常的数据。
function curlzkam($urla)
{
/* 根据网页编码格式做修改是gbk还是utf-8 */
// header("Content-Type:text/html; charset=utf-8");
header("Content-Type:text/html; charset=GBK");
$url = $urla;
$ch = curl_init();
$user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
$str = curl_exec($ch);
echo($str);
curl_close($ch);
}
curlzkam("http://www.ruiwen.org.cn/");