志在指尖
用双手敲打未来

php curl采集JD用户评论

先说一下我遇到的问题吧。
1、页面js报错,说’src’不存在。
2、拿到数据后json_decode()回来NULL。
解决:
1、js报错,我在本地(环境下经过localhost访问的php文件),放到线上环境,报错消失。
2、回来NULL,首要我们拿到数据不是纯json格局的,无法直接转换需求去头去尾,而且编码格局也不是UTF-8的需求转码。
下面是我写的demo:
php文件:
$url,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_ENCODING=>””,
CURLOPT_MAXREDIRS=>10,
CURLOPT_TIMEOUT=>0,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_HTTP_VERSION=>CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST=>”GET”,
CURLOPT_POSTFIELDS=>array(‘a’=>’123′,’b’=>’456’),
CURLOPT_HTTPHEADER=>array(
“Cookie:JSESSIONID=768126C3E357B9D82367536A90FA697F.s1;jwotest_product=99″
),
));
$output=curl_exec($curl);
curl_close($curl);
//这儿的’fetchJSON_comment98’字符串你要自己看一下与可能不同。
//去除得到的json数据的头部和尾部数据。得到一个和php能够转换的json数据。
$output=str_replace(‘fetchJSON_comment98(‘,”,$output);
$output=str_replace(‘}]});’,’}]}’,$output);
//检查编码格局
$encode=mb_detect_encoding($output,array(“ASCII”,’UTF-8′,”GB2312″,”GBK”,’BIG5′));
if($encode==’UTF-8′){
//echo$encode;
}else{
//编码转换,转成UTF-8
$output=mb_convert_encoding($output,’UTF-8′,$encode);
}
//转码转成数组
$result=json_decode($output,true);
//判别是否是数组,避免空数据,下面的foreach保错。
if(!is_array($result)){
break;
}
foreach($resultas$k=>$v){
//数组里还有其他的一些杂数据,需求去除去。我这个在以后的日子里不一定准,你要自己查看一下在做过滤。
if(is_array($v)&&isset($v[0][‘content’])){
foreach($vas$key=>$value){
//直接输出到页面上并换行
echo$value[‘content’].”
“;
///着里我是想存入文件的,需求能够打开,文件目录自己设置一下。
//file_put_contents(‘static/log/log.txt’,$value[‘content’].PHP_EOL,FILE_APPEND);
}
}
}
$i++;
}
html页面:
Document
网址
开端页数
完毕页数

未经允许不得转载:IT技术网站 » php curl采集JD用户评论
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载