声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
逆向分析
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.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。