《PHP如何抓取淘宝产品的标题、SKU、价格、主图》要点:
本文介绍了PHP如何抓取淘宝产品的标题、SKU、价格、主图,希望对您有用。如果有疑问,可以联系我们。
相关主题:PHP开发
抓取淘宝产品标题、SKU等等:
比如这个产品:
https://item.taobao.com/item.htm?id=565670676191
抓取接口:
http://hws.m.taobao.com/cache/wdetail/5.0/?id=565670676191
返回值:
在浏览器中查看即可。主要是返回产品标题、SKU、价格、主图等等,但没有产品详情页介绍。
详情页接口则是:
http://hws.m.taobao.com/cache/mtop.wdetail.getItemDescx/4.1/?&data={%22item_num_id%22:%22558561179254%22}&type=jsonp&callback=showTuwen&_=1523753975235
以下是调用接口的相关方法:
<?php
/**
* 实现传入宝贝的id,返回宝贝的链接,支持淘宝
* @param $id 宝贝的id
* @return string 返回的宝贝的链接
*/
function getTbLink($id){
$url="https://item.taobao.com/item.htm?spm=a1z10.4-c.w5003-12641268955.30.0lDnKZ&id=".$id."&scene=taobao_shop";
return $url;
}
/**
* 实现传入宝贝的id,获取宝贝的商品名,支持淘宝和天猫
* @param $id 宝贝的id
* @return mixed 宝贝的商品名
*/
function getNameById($id){
$url="http://hws.m.taobao.com/cache/wdetail/5.0/?id=".$id;
$content=file_get_contents($url);
$content_ori=strip_tags($content);
$content_arr=json_decode($content_ori,true);
$detail=json_decode($content_arr['data']['apiStack']['0']['value'],true);
$success_sym=$detail['ret']['0'];//成功则返回"SUCCESS::调用成功";
if($success_sym=="SUCCESS::调用成功"){
$name=$content_arr['data']['itemInfoModel']['title'];
return $name;
}else{
return "<script type='text/javascript'>alert('宝贝不存在!');</script>";
}
}
/**
* 实现传入宝贝id,获取宝贝价格,支持淘宝和天猫
* @param $id 宝贝的id
* @return mixed 返回的宝贝的价格或价格区间
*/
function getPriceById($id){
$url="http://hws.m.taobao.com/cache/wdetail/5.0/?id=".$id;
$content=file_get_contents($url);
$content_ori=strip_tags($content);
$content_arr=json_decode($content_ori,true);
$pro_detail=json_decode($content_arr['data']['apiStack']['0']['value'],true);
$success_sym=$pro_detail['ret']['0'];//成功则返回"SUCCESS::调用成功";
if($success_sym=="SUCCESS::调用成功"){
$pro_price=$pro_detail['data']['itemInfoModel']['priceUnits']['0']['price'];
return $pro_price;
}else{
return "<script type='text/javascript'>alert('宝贝不存在!');</script>";
}
}
/**
* 实现传入宝贝id,获取宝贝的收藏人数(人气),支持淘宝
* @param $id 宝贝id
* @return mixed 返回的宝贝的收藏人数(人气)
*/
function getPopById($id){
$url=getTbLink($id);
$urlinfo = parse_url($url);
parse_str($urlinfo['query'], $query);
$id = $query['id'];
$data = file_get_contents($url);
$start = strpos($data, 'counterApi');
$start = strpos($data, ": ", $start);
$end = strpos($data, "',", $start);
$api = 'https:' . substr($data, $start + 3, $end - $start - 3) . '&callback=jsonp107';
$response = file_get_contents($api);
$response = substr($response, 9, -2);
$arr = json_decode($response, true);
$popularity=$arr['ICCP_1_'.$id];
return $popularity;
}
/** 实现传入宝贝id,获取宝贝图片url
* @param $id 宝贝id
* @return mixd 宝贝图片url
*/
function getPicById($id){
$url="http://hws.m.taobao.com/cache/wdetail/5.0/?id=".$id;
$content=file_get_contents($url);
$content_ori=strip_tags($content);
$content_arr=json_decode($content_ori,true);
$detail=json_decode($content_arr['data']['apiStack']['0']['value'],true);
$success_sym=$detail['ret']['0'];//成功则返回"SUCCESS::调用成功";
if($success_sym=="SUCCESS::调用成功"){
$name=$content_arr['data']['itemInfoModel']['picsPath'];
return $name;
}else{
return "<script type='text/javascript'>alert('宝贝不存在!');</script>";
}
}