美团民宿 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.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

相关推荐
松☆9 分钟前
Dart 核心语法精讲:从空安全到流程控制(3)
android·java·开发语言
编码者卢布22 分钟前
【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
后端·python·flask
可触的未来,发芽的智生26 分钟前
狂想:为AGI代称造字ta,《第三类智慧存在,神的赐名》
javascript·人工智能·python·神经网络·程序人生
编码者卢布30 分钟前
【App Service】Java应用上传文件功能部署在App Service Windows上报错 413 Payload Too Large
java·开发语言·windows
吴维炜1 小时前
「Python算法」计费引擎系统SKILL.md
python·算法·agent·skill.md·vb coding
q行1 小时前
Spring概述(含单例设计模式和工厂设计模式)
java·spring
好好研究2 小时前
SpringBoot扩展SpringMVC
java·spring boot·spring·servlet·filter·listener
毕设源码-郭学长2 小时前
【开题答辩全过程】以 高校项目团队管理网站为例,包含答辩的问题和答案
java
FansyMeng2 小时前
VSCode配置anaconda
vscode·python