美团民宿 mtgsig 小程序 mtgsig1.2 分析

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

逆向分析

复制代码
cp = execjs.compile(open('民宿-mtgsig.js', 'r', encoding='utf-8').read())
data = cp.call('getMtgsig',data,openId,page)
mtgsig = data['header']['mtgsig']
复制代码
headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
     'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'cross-site',
    'clientversion': '3.3.5',
    'csecuserid': '',
    'utm_medium': '',
    'xweb_xhr': '1',
    'mtgsig': mtgsig,
}

params = {
    'phx_appnm': 'group_wxapp',
    'phx_plat': 'android',
    'phx_app_version': '0.0.0',
    'phx_channel': 'weixin',
    'phx_geo_city_id': '440100',
    'phx_geo_city_name': '广州',
    'front_geo_city_id': '20',
    'phx_invite_code': '',
    'phx_act_id': '',
    'phx_wake_up_type': 'group_wxapp_entry',
    'phx_wake_up_source': 'hotel_home_page_tab',
    'yodaReady': 'wx',
    'csecappid': '',
    'csecplatform': '3',
    'csecversionname': '9.13.2',
    'csecversion': '1.4.0',
}

json_data = {
    'cityId': 440100,
    'frontCityId': 20,
    'cityName': '广州',
    'frontCityName': '广州',
    'dateBegin': '20250402',
    'dateEnd': '20250403',
    'cityEnName': 'guangzhou',
    'isForeign': 0,
    'rawOffset': 28800,
    'dstOffset': 0,
    'adultsNumber': 0,
    'childrenNumber': 0,
    'babiesNumber': 0,
    'bedCount': 0,
    'totalGuestNumber': 0,
    'minPrice': 0,
    'hotelLevels': [],
    'productTypeList': [],
    'poiTypeList': [],
    'rentTypeList': [],
    'layoutRoomList': [],
    'facilities': [],
    'sortType': 0,
    'tagIds': [],
    'complexFilterItemIds': [],
    'singleTagIds': [],
    'locationCategoryId': -4,
    'locationGroupId': -4,
    'locationId': -4,
    'searchRatioValue': 4,
    'relationTagIds': [],
    'adjustDateForLongRent': False,
    'needLoading': 1,
    'needLogin': 1,
    'needTopProductIds': [],
    'isSubpackageMt': 1,
    'needTopMtPoiIds': [],
    'mpApis': {},
    'wxLogined': '',
    'pageSize': 20,
    'useNewTag': 1,
    'currentTimeMillis': '',
    'privacySwitch': True,
    'newDiscountPopupStyle': True,
    'pageNow': 3,
    'bigMode': False,
    'searchId': '',
    'deprecatedGraphqlMark': True,
    'foldAvailable': True,
    'searchFirstScreen': False,
}

response = requests.post(
    'searchProduct/search',
    params=params,
    headers=headers,
    json=json_data,
)

结果

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

相关推荐
阿正呀14 分钟前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
九转成圣21 分钟前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
2501_9012005329 分钟前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
_.Switch43 分钟前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
Mr_sst1 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
直奔標竿1 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
瞎某某Blinder1 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
金銀銅鐵1 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
m0_495496412 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
forEverPlume2 小时前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python