獲取店鋪列表數(shù)據(jù)時(shí)(以美食為例),ajax鏈接如下
https://gz.meituan.com/meishi/api/poi/getPoiList?cityName=%E5%B9%BF%E5%B7%9E&cateId=0&areaId=0&sort=&dinnerCountAttrId=&page=1&userId=&uuid=9a564a1b-5857-4809-81bc-9ec5bfa2511d&platform=1&partner=126&originUrl=https%3A%2F%2Fgz.meituan.com%2Fmeishi%2F&riskLevel=1&optimusCode=10&_token=eJxdjstuglAURf%2FlTiVyeT8SB6BQry0oKKg0DhQQUB7yLjb9915TnTQ5yd5nnTU436BCAZApCCUICdCFFZABNYZjHhCgqfGF4yWRYWnIsZAmgP%2BPSQIBTpU7A%2FInJdGQYGnx8CA2Bn%2BEgiI8EK%2FO4k6zeB4WwhKIm%2BZWyyQZ3cdZmDTtMR%2F7RUbiXscJib8AWM02WMV5febxmc1rN%2FDb2K2TKMctXPTpxaHa%2FqJYcUhO%2B6q1lgaCZWjp%2B2Kr0fM3Zb0ZNO2kBRc%2FQL6atM5u50Jmutq2THne3fjV0EQxWt4v9k0VVQnNk3N%2FNMnzajTqUgY5SodGXKII2pr1dNuPc8kYLas173j6rchnGe1yetrZHiWZd8HTrhaVrGAQ6pBzy8ZXnenV3Q%2FlxhXcfWOIUVonIu0IRSDuuTtr215lFAuS5IZFFgiGWZv8uzbk56wwU2bjcjD8Kqs5tPrdETHbU%2Bd8RKcYxdFkAn5%2BAdZNiy4%3D
詳細(xì)參數(shù)有
params = {'_token': 'eJxdjstuglAURf/lTiVyeT8SB6BQry0oKKg0DhQQUB7yLjb9915TnTQ5yd5nnTU436BCAZApCCUICdCFFZABNYZjHhCgqfGF4yWRYWnIsZAmgP+PSQIBTpU7A/InJdGQYGnx8CA2Bn+EgiI8EK/O4k6zeB4WwhKIm+ZWyyQZ3cdZmDTtMR/7RUbiXscJib8AWM02WMV5febxmc1rN/Db2K2TKMctXPTpxaHa/qJYcUhO+6q1lgaCZWjp+2Kr0fM3Zb0ZNO2kBRc/QL6atM5u50Jmutq2THne3fjV0EQxWt4v9k0VVQnNk3N/NMnzajTqUgY5SodGXKII2pr1dNuPc8kYLas173j6rchnGe1yetrZHiWZd8HTrhaVrGAQ6pBzy8ZXnenV3Q/lxhXcfWOIUVonIu0IRSDuuTtr215lFAuS5IZFFgiGWZv8uzbk56wwU2bjcjD8Kqs5tPrdETHbU+d8RKcYxdFkAn5+AdZNiy4=',
'areaId': '0',
'cateId': '0',
'cityName': '廣州',
'dinnerCountAttrId': '',
'optimusCode': '10',
'originUrl': 'https://gz.meituan.com/meishi/',
'page': '1',
'partner': '126',
'platform': '1',
'riskLevel': '1',
'sort': '',
'userId': '',
'uuid': '9a564a1b-5857-4809-81bc-9ec5bfa2511d'}
其中uuid從首頁可以獲取,其他參數(shù)為固定或非必要參數(shù),因此只需要逆向_token參數(shù)即可
點(diǎn)擊鏈接對(duì)應(yīng)的Initiator,進(jìn)入js源碼,格式化后打上斷點(diǎn),刷新網(wǎng)頁



逐級(jí)點(diǎn)擊Call Stack中的調(diào)用方法,找到加密方法所在位置(這里基本沒有混淆加密,很好找)

進(jìn)入到reload方法后,打上斷點(diǎn),刷新網(wǎng)頁,基本確認(rèn)就是在這里進(jìn)行加密的

可以看到,被加密的字符串為
"https://gz.meituan.com/meishi/api/poi/getPoiList?cityName=廣州&cateId=0&areaId=0&sort=&dinnerCountAttrId=&page=1&userId=&uuid=9a564a1b-5857-4809-81bc-9ec5bfa2511d&platform=1&partner=126&originUrl=https://gz.meituan.com/meishi/&riskLevel=1&optimusCode=10"
基本就是最開始時(shí)我們需要的參數(shù)(params字典)
這里采用最粗暴的逆向方式,把整個(gè)js文件拿下來,放到pycharm中執(zhí)行,修改掉一些瀏覽器特有的參數(shù),比如window,報(bào)錯(cuò)的地方,直接通過瀏覽器斷點(diǎn)獲取對(duì)應(yīng)的值進(jìn)行替換。

保存調(diào)試好的js文件,使用execjs調(diào)用即可,具體代碼見https://github.com/Fathui/JsEncryptionAndLogin/tree/master/Meituan