抓取淘宝商品价格人气-http://hws.m.taobao.com/cache/wdetail/5.0

转:http://blog.youkuaiyun.com/leiflyy/article/details/50611731

php实现抓取淘宝商品价格人气源码


闲着没事做的这么个小东西,没想到还真有人联系我,而且不止一个,第一次感觉到自己的代码有了价值,于是我决定先小更新一下,加了获取图片的功能

<?php
/**
 * Created by PhpStorm.
 * User: leif
 * Date: 16/1/26
 * Time: 10:17
 * email: leiflyy@outlook.com
 */

/**
 *  实现传入宝贝的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>";
    }

}

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103

以下为老版,以上为新版, 







寒假在家无聊想看一下淘宝相关开发怎么样,注册了个淘宝开发者,然后想调api的时候,发现还要很多很复杂的步骤,而且有的还收费,太尼玛坑爹了,于是自己尝试抓了一些淘宝的数据,做了自己的api。

其中获取商品人气,也就是收藏人数,目前只支持淘宝商品,不支持天猫,获取人气、商品名是淘宝和天猫都支持的,但是由于是抓取的淘宝的缓存文件,所以。。。有可能会出现一些问题,但我测试过程中还没遇到问题。

如果大家在使用过程中发现问题,欢迎与我联系,我会进行改进。

我的联系方式:

同时,我也正在计划做一些其他的,比如已经实现的获取商品图片,我觉得用处不大。。。所以,下一版再加。

好了,不废话了,,上源码

<?php
/**
 * Created by PhpStorm.
 * User: leif
 * Date: 16/1/26
 * Time: 10:17
 * email: leiflyy@outlook.com
 */

/**
 *  实现传入宝贝的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;
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值