<?php
/*
* 获取淘宝商品评论
*/
$url = '';//填写地址
// $text=file_get_contents($url);//最原始
//-------------------------------------------
$curl = curl_init(); //初始化,创建句柄
curl_setopt($curl, CURLOPT_URL, $url); //设置细节参数
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
$text = curl_exec($curl); //获取内容
curl_close($curl);
//-------------------------------------------
preg_match('/<meta name="microscope-data" content="([^<>]*)">/', $text, $uinfo);
foreach (explode(";", str_replace(' ', '', $uinfo[1])) as $value) {
if (substr($value, 0, 6) == 'userid') {
$userid = substr($value, 7);
}
}
if (!$userid) {
exit('网络原因,未获取到掌柜ID,请重试!');
}
preg_match("/id=(\d+)/i", $url, $id_arr);
if (!empty($id_arr)) {
$auctionid = $id_arr[1];
}
if (stristr(substr($url, 0, 23), 'taobao')) {//淘宝
$urls = "http://rate.taobao.com/feedRateList.htm?callback=jsonp_reviews_list&userNumId=$userid&auctionNumId=$auctionid¤tPageNum=1";
} elseif (stristr(substr($url, 0, 23), 'tmall')) {//天猫
$urls = "http://rate.tmall.com/list_detail_rate.htm?itemId=$auctionid&sellerId=$userid&callback=jsonp";
}
$ch = curl_init(); //初始化,创建句柄
curl_setopt($ch, CURLOPT_URL, $urls); //设置细节参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$str = curl_exec($ch); //获取内容
curl_close($ch);
if (stristr(substr($url, 0, 23), 'taobao')) {//淘宝
$str = mb_convert_encoding($str, 'UTF-8', 'GBK'); //转换编码
$str = str_replace('jsonp_reviews_list(', '', $str); //去掉多余的字符串
$str = str_replace(')', '', $str);
$data = json_decode($str, TRUE); //得到数据了,第二个参数是转化为数组
if ($data['comments']) {
$count = $this->pl->delete('spid=' . $auctionid);
foreach ($data['comments'] as $key => $value) {
if ((int) $value['rate'] > 0) {//只取好评
$content['nick'] = $value['user']['nick'];
$content['displayRatePic'] = str_replace('_', '', substr(str_replace('.gif', '', $value['user']['displayRatePic']), 2));
$content['rank'] = $value['user']['rank']; //淘宝评论,该字段貌似多余
$content['date'] = $value['date'];
$content['content'] = $value['content'];
$content['spid'] = $auctionid;
$content['ly'] = 'taobao';
if ($key < 10) {
$infos = $this->pl->insert($content); //入库
} else {
break; //终止循环
}
}
}
} else {
exit("评论为空");
}
exit("采集淘宝评论成功");
} elseif (stristr(substr($url, 0, 23), 'tmall')) {//天猫
$str = mb_convert_encoding($str, 'UTF-8', 'GBK'); //转换编码
$str = str_replace('jsonp(', '', $str); //去掉多余的字符串
$str = str_replace(')', '', $str);
$data = json_decode($str, TRUE); //得到数据了,第二个参数是转化为数组
if (!empty($data['rateDetail']['rateList'])) {
$count = $this->pl->delete('spid=' . $auctionid);
foreach ($data['rateDetail']['rateList'] as $key => $value) {
$content['nick'] = $value['displayUserNick'];
$content['displayRatePic'] = str_replace('_', '', substr(str_replace('.gif', '', $value['displayRatePic']), 2));
$content['rank'] = $value['tamllSweetLevel'];
$content['date'] = $value['rateDate'];
$content['content'] = $value['rateContent'];
$content['spid'] = $auctionid;
$content['ly'] = 'tmall';
if ($key < 10) {
$infos = $this->pl->insert($content); //入库
} else {
break; //终止循环
}
}
} else {
exit("评论为空");
}
exit("采集天猫评论成功");
}