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

相关推荐
胡耀超3 分钟前
基于Docker的GPU版本飞桨PaddleOCR部署深度指南(国内镜像)2025年7月底测试好用:从理论到实践的完整技术方案
运维·python·docker·容器·ocr·paddlepaddle·gpu
小关会打代码1 小时前
Python编程进阶知识之第四课处理数据(pandas)
python·机器学习·pandas·数据处理
丶小鱼丶1 小时前
栈算法之【有效括号】
java·算法
WJ.Polar1 小时前
Python柱状图
python·信息可视化
一百天成为python专家2 小时前
数据可视化
开发语言·人工智能·python·机器学习·信息可视化·numpy
郝学胜-神的一滴2 小时前
SpringBoot实战指南:从快速入门到生产级部署(2025最新版)
java·spring boot·后端·程序人生
说私域2 小时前
技术赋能与营销创新:开源链动2+1模式AI智能名片S2B2C商城小程序的流量转化路径研究
人工智能·小程序·开源
鼠鼠我捏,要死了捏4 小时前
Java 虚拟线程在高并发微服务中的实战经验分享
java·microservices·virtualthreads
武子康5 小时前
Java-82 深入浅出 MySQL 内部架构:服务层、存储引擎与文件系统全覆盖
java·开发语言·数据库·学习·mysql·spring·微服务
Rancemy5 小时前
rabbitmq 03
java·分布式·rabbitmq