V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fhefh
V2EX  ›  分享发现

爬取猩便利店特价信息

  •  
  •   fhefh · 2017-12-14 08:18:15 +08:00 · 2669 次点击
    这是一个创建于 2529 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近公司多了个无人售货机,经常做活动在,感觉力度还是很大的,于是抓包看了看,感觉可以做个特价商品微信推送查询功能。

    代理抓包

    先扫猩猩便利店上的二维码,然后配置代理抓包

    我用的工具是 Charles,大家可以用自己顺手的工具。

    不会 Charles 抓包的同学可以看看这篇文章,点击我查看

    如图所示,找到步骤 1 的网址,在找到步骤 2 中的网址

    只需要关注 discount 和 commodityList 这两个数组,分别是特价信息和商品信息。

    生成代码

    如图所示,点击生成

    代码类似如下

    curl -H ':method: GET' -H ':authority: www.xingbianli.com' -H ':scheme: https' -H ':path: /openrack/猩猩便利店货架 ID/commodityList?t=1513208555000' -H 'accept: application/json' -H 'origin: https://h5.xingbianli.com' -H 'user-agent: Mozilla/5.0 (Linux; Android 7.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.5.23.1180 NetType/WIFI Language/zh_CN' -H 'referer: https://h5.xingbianli.com/app/app-openrack-h5/main.html?' -H 'accept-encoding: gzip, deflate' -H 'accept-language: zh-CN,en-US;q=0.8' -H 'cookie: xbl_uuid=生成的 UUID' -H 'cookie: token=生成的 TokenID' -H 'x-requested-with: ' 'https://www.xingbianli.com/openrack/猩猩便利店货架 ID/commodityList?t=1513208555000'
    

    将 curl 代码转换 PHP 代码,点击我打开网站

    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, "https://www.xingbianli.com/openrack/猩猩便利店货架 ID/commodityList?t=1513208555000");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    
    
    $headers = array();
    $headers[] = ": path: /openrack/猩猩便利店货架 ID/commodityList?t=1513208555000";
    $headers[] = "Accept: application/json";
    $headers[] = "Origin: https://h5.xingbianli.com";
    $headers[] = "User-Agent: Mozilla/5.0 (Linux; Android 7.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.5.23.1180 NetType/WIFI Language/zh_CN";
    $headers[] = "Referer: https://h5.xingbianli.com/app/app-openrack-h5/main.html?";
    $headers[] = "Accept-Encoding: gzip, deflate";
    $headers[] = "Accept-Language: zh-CN,en-US;q=0.8";
    $headers[] = "Cookie: token=生成的 TokenID";
    $headers[] = "X-Requested-With: ";
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close ($ch);
    
    $datas = json_decode($result, true);
    
    //获取便宜商品的价格
    $discountProducts = [];
    
    //最终输出
    $products = [];
    
    //todayPrice 今日特价 name 商品名称 currentPrice 正常价格
    
    foreach ($datas['data']['discount'] as $items) {
        array_push($discountProducts, $items['commodityId']);
        $products[$items['commodityId']]['todayPrice'] = $items['currentPrice'];
    }
    
    //列出便宜商品
    foreach ($datas['data']['commodityList'] as $items) {
        if(in_array($items['commodityId'], $discountProducts)) {
            $products[$items['commodityId']]['name'] = $items['name'];
            $products[$items['commodityId']]['currentPrice'] = $items['basicPrice'];
            $products[$items['commodityId']]['bigPicUrl'] = $items['bigPicUrl'];
        }
    }
    
    echo json_encode($products);
    
    

    结果展示

    其实还有很多可以做的,比如用用 Server 酱进行推送,或者进行其他有意思的东东。

    7 条回复    2017-12-14 11:04:44 +08:00
    iyg429
        1
    iyg429  
       2017-12-14 09:32:32 +08:00 via iPhone
    挺好
    我公司也有猩便利
    我最常吃的就是咪咪和特惠早餐包
    fhefh
        2
    fhefh  
    OP
       2017-12-14 09:43:04 +08:00
    @iyg429 特惠早餐包 有啥 还没买过~
    mokeyjay
        3
    mokeyjay  
       2017-12-14 09:44:44 +08:00
    fhefh
        4
    fhefh  
    OP
       2017-12-14 09:56:45 +08:00
    @mokeyjay 嘿嘿~~ 主要是妹子要~~~
    iyg429
        5
    iyg429  
       2017-12-14 10:01:08 +08:00
    @fhefh 一瓶奶(有时候是纯牛奶,有时候是优酸乳,或者是果粒乳)和一个面包(有时候是一个奶心面包 有时候是 2 个好立派) 2.9 元 在便利店要 7 元
    shoaly
        6
    shoaly  
       2017-12-14 10:31:11 +08:00
    楼主在直接生成一个 rss 可好, 咱们可以直接订阅随时撸羊毛
    Level5
        7
    Level5  
       2017-12-14 11:04:44 +08:00
    每次想到这么辛苦去薅这点羊毛,不如在买的时候干脆多拿几个,比这么薅来的容易多了。想着想着就没动力去薅了。也不去买它家的东西了,因为反正很容易可以拿( tou )到,而要花大力气还花钱去买会觉得有点傻。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:43 · PVG 21:43 · LAX 05:43 · JFK 08:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.