美团外卖页面分析

本文仅供学习,请勿用于任何非法用途!

美团外卖目前有h5和app两个端,再对比两端的加密方式后,h5相对会简单些,毕竟接口和css加解密的方式都能通过chrome调试获得,需要花时间攻克的主要是对ip和账号的限制。

美团外卖h5地址 美团外卖

一、ip的问题

花了不少时间去找好用的代理ip,由于需要在登录状态获取数据,因此ip必须是长效的,否则频繁更换ip,可能账号很快就会被封掉,还尝试过手机热点/云主机,但是很快都被美团识别到,到目前为止还没有找到稳定好用的代理ip,如果你有好用的,不妨交流下。目前想到的方案:

1、找朋友或兼职,在不同的ip运行程序

2、在朋友或兼职的电脑上搭建代理,自己实现代理ip功能。

二、账号问题

为了这次任务搞了几个手机号注册了美团,最好用这些账号下个1单外卖,因为有时验证会让你填入最近一次的订单号,有时是让你填身份证里生日的8位数字。然后尽量账号与ip配对使用,避免混用,否则也容易被封。其次就是短信验证的问题,账号少的情况下,手动输输算了,如果的多的话,可以考虑买个猫池或者自己用adb去实现短信的自动输入。

三、定位问题

美团外卖只能搜索附近店铺,因此比如你想获得全上海的的全家超市,你是不可能通过一次搜索全部获得,必须不断的变换位置进行搜索,而美团在你访问h5页面的过程中会不断获得你的位置信息,同时会用ip定位获得你的位置,因此在你设置了设备的位置后,还需要拦截美团的主动定位请求,否则你每次搜索只能搜到你ip附近的店铺。下面是localstorge中会影响到定位的key

下面是美团主动发出的定位请求

四、css反爬

相对于大众点评的svg方式,美团要简单不少,直接解析woff就可以,首先找到文字对应的unicode,然后去woff文件里拿对应的文字即可,有位朋友针对这类加密专门提供了一个接口,如果你懒得研究可以单独联系我获取(记的要收藏并点赞本文哦)。

五、客户端的人机识别

套路和大众点评差不多,代码都是一样,你的设备信息(屏幕长宽,可视区域长宽、设备名称、webdriver等)会被加密随每个请求发送给美团,鼠标移动的轨迹也会随请求上报,因此通过纯接口的方式获取点评和美团已经不太现实,只能借助一些自动化测试工具加载网页进行获取,获取过程的操作也要拟人,且频率不能太高。

补充 

针对评论区的提问补充

商家电话虽然没有渲染,但是在商家信息接口是返回电话信息的,在shopPhone字段内

{
    "tip": "以下为本店全部商品,不在列表中则不售卖;加热等特殊需求请备注。\n为环保助力,外卖商品不主动提供一次性餐具,建议自备餐具或按需选择。\n如果您对我们的服务满意,请给五星哟~",
    "sold": "0",
    "isBrand": 1,
    "serTime": [
        "09:00-21:00"
    ],
    "shopLat": 31205455,
    "shopLng": 121629095,
    "brandMsg": "该商户为品牌商户",
    "dpShopId": 0,
    "shopName": "便利蜂(张江盛银大厦店)",
    "shopStar": 0,
    "mtWmPoiId": "1000024226129925",
    "onlinePay": 1,
    "shopPhone": [
        "4000001234"
    ],
    "invoiceMsg": "",
    "licencePics": [],
    "shopAddress": "上海市上海市浦东新区盛夏路666号、银东路122号盛银大厦6幢1层04单元",
    "activityList": [
        {
            "actDesc": "满39减2;满49减5;满69减10;满99减18",
            "actName": "",
            "actType": 0,
            "iconUrl": "http://p0.meituan.net/activityconfig/6087b33fd42d14fd94e899084aaef56d1720.png",
            "iconText": ""
        },
        {
            "actDesc": "折扣商品5.72折起",
            "actName": "",
            "actType": 0,
            "iconUrl": "http://p0.meituan.net/activityconfig/3da2d9c7a4ddf89e4e71cfdfff168c391088.png",
            "iconText": ""
        },
        {
            "actDesc": "实际支付39元返3元商家代金券",
            "actName": "",
            "actType": 0,
            "iconUrl": "http://p0.meituan.net/xianfu/652eea4034250563fe11b02e3219ba8d981.png",
            "iconText": ""
        },
        {
            "actDesc": "该商家支持在线支付",
            "actName": "",
            "actType": 0,
            "iconUrl": "http://p1.meituan.net/xianfu/32200c3060be7903f62c9076308619ee734.png",
            "iconText": ""
        }
    ],
    "shopEnvTitle": "商家环境",
    "invoiceSupport": 0,
    "shopReviewTitle": "点评评价",
    "poiQualificationInfo": {
        "url": "https://i.waimai.meituan.com/c/foods_safe_doc/index.html?wm_poi_id=1000024226129925",
        "show": true,
        "content": "查看食品安全档案"
    },
    "overtimePaymentSupported": false
}

  • 13
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

压码路

如果帮到你,可以意思一下吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值