爬取猩便利店特价信息

2017-12-14 08:18:15 +08:00
 fhefh

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

代理抓包

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

我用的工具是 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 酱进行推送,或者进行其他有意思的东东。

2616 次点击
所在节点    分享发现
7 条回复
iyg429
2017-12-14 09:32:32 +08:00
挺好
我公司也有猩便利
我最常吃的就是咪咪和特惠早餐包
fhefh
2017-12-14 09:43:04 +08:00
@iyg429 特惠早餐包 有啥 还没买过~
mokeyjay
2017-12-14 09:44:44 +08:00
fhefh
2017-12-14 09:56:45 +08:00
@mokeyjay 嘿嘿~~ 主要是妹子要~~~
iyg429
2017-12-14 10:01:08 +08:00
@fhefh 一瓶奶(有时候是纯牛奶,有时候是优酸乳,或者是果粒乳)和一个面包(有时候是一个奶心面包 有时候是 2 个好立派) 2.9 元 在便利店要 7 元
shoaly
2017-12-14 10:31:11 +08:00
楼主在直接生成一个 rss 可好, 咱们可以直接订阅随时撸羊毛
Level5
2017-12-14 11:04:44 +08:00
每次想到这么辛苦去薅这点羊毛,不如在买的时候干脆多拿几个,比这么薅来的容易多了。想着想着就没动力去薅了。也不去买它家的东西了,因为反正很容易可以拿( tou )到,而要花大力气还花钱去买会觉得有点傻。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/414565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX