美团店铺数据抓取 token解析与生成

美团、点评网的token都是用一套加密算法,实际上就是个gzip压缩算法。加密了2次,第一次是加密了个sign值,而后把sign值带进去参数中进行第二次加密,最后得出tokenpython

  1. 分析请求

   打开上海美食, Network 抓包看一下,能够看到一个请求: getPoiList?cityName=XXXXX, 其中返回的就是咱们想要的数据web

咱们打开这个请求看一下, 都有哪些参数
算法

其中, uuid 和 _token是咱们须要注意的
咱们全局搜索一下 uuid 的值 , 发现uuid 就在咱们当前页面返回的结果中, 咱们能够直接拿来用
函数

_token 参数 是通过加密后的结果, 是有时效性的, 因此接下来咱们要解析它测试

2.解析Tokenui

美团token的加密算法比较简单, 编码

  • 加密: 二进制压缩, base64编码
  • 解密: base64解码, 二进制解压

定义解析token的方法加密

def decode_token(token):
    # base64解码
    token_decode = base64.b64decode(token.encode())
    # 二进制解压
    token_string = zlib.decompress(token_decode)
    return token_string
复制代码

而后获取美团的token,调用decode_token方法进行解析:spa

eJxdjltvgkAQhf/LvkpkF3eFmvRBqqJYlAXxQuPDclGwogirCE3/e9fUvjSZ5JyZ8+VkvkAxiU
APQfgCoQRucQF6ALVhuwskwEuREFV5hFqXICSB8N9NJRIIiuUA9D40UaAq3e3j4Ij9A2E
MJVG7lX6tpqpbScFiHsxEICDhPC97slwm7SxO+ZWd2uE5k4Uvk1QWLwCBZguBCv18Kn
sq/9st8bNgy3R/Ei42q+PBQ5eq6dMkbrmJz2p/XmH9nU5WznIaNZ3+XS/GtG7Mw5CN1u
m48xZmOi2xA5ka31v2SzDpO3ZRNWy/0Hf1gMibaV+9ZfiWkQ5xjwYxrItHcboeWJfCmy
bEsOvu9O6k8dHS/HI9w9cyjjQYRxvdpfnQZgFdWriZrS6jsEbehmWLpvAD7uK91zJpwHy
tFdLd+q043eemV+8OnWWVE04QwzjKbWMcRGcbWePVPljImxuXUc5nK0OBSqCZzB1Z
r+D7Bx2Uick=3d

{
    "rId"100900,
    "ver""1.0.6",
    "ts"1571759551178,
    "cts"1571759551234,
    "brVD": [387726],
    "brR": [
        [1440900],
        [1440877], 2424
    ],
    "bI": ["https://sz.meituan.com/meishi/c227/"""],
    "mT": [],
    "kT": [],
    "aT": [],
    "tT": [],
    "aM""",
    "sign""eJwdjU1KBDEQhe8yiyzzR/e0CFnIrASZnQcok+qZwk7SVCoDehYvIS48kZ7D4Op9PN7PARjhMQWrIggO8H5RkeTtDBnD7/fnz8eXSlQK8qn2Ig8iPFKq7kK5t1NNGJxVlelC5Zm3cBXZ270x7V1nJOlQdKzZDG5XMnHMG7XDZbSGsIzd4PxR7RvIWjkPm6m9PuENt8GtsgTVG/6f9k4pHFdv07LGF/R+WlyCdQLt5sXN891sJ+201fbwB3meSgc="
}
复制代码

其中 ts 就是时间戳参数, cts = ts + 1000, sign(sign一样通过压缩+base64编码,用上面的解码函数能看到sign参数,sign参数基本都是一些get提交的参数,均可以在页面源码找到), 其它参数保持不变便可

3.测试结果

能够看到, 可以拿到正确的数据至此,解析token和生成token的过程已经讲解完毕,若是你以为笔者写得还不错,请点个赞!

相关文章
相关标签/搜索