内容仅供参考学习
问题展示:
点一个链接进入网页,取不到任何数据的
但是通过搜索进入店铺发现评论能够正常获取到
解决方案:
事实上是店铺的id过期了,通过对比2个链接可以发现:
老的链接:“https://h5.waimai.meituan.com/waimai/mindex/menu?mtShopId=898843424859485 &poi_id_str=da3SHb1KxLNRL7xyMouqFwI&dishId=&source=shoplist&utm_source=&channel=default&mtOrderId=&h5_detail_back=&initialLat=31.256489&initialLng=120.615766&actualLat=31.256838&actualLng=120.735717”
新的链接:“https://h5.waimai.meituan.com/waimai/mindex/menu?mtShopId=1041208710158498 &poi_id_str=da3SHb1KxLNRL7xyMouqFwI&dishId=&source=searchresult&utm_source=&channel=default&mtOrderId=&h5_detail_back=&initialLat=31.256489&initialLng=120.615766&actualLat=31.256838&actualLng=120.735717”
-
处理
通过下面的请求可以获取到新的shopId
def get_new_shopId(old_shopId, openh5_uuid):
data = {
"optimus_code": "10",
"optimus_risk_level": "71",
"wm_poi_id": old_shopId,
"wm_ctype": "openapi",
"wm_appversion": "4.0.0",
"wm_order_channel": "default",
"wm_uuid": openh5_uuid,
"wmUuidDeregistration": "0",
"wmUserIdDeregistration": "0",
"openh5_uuid": openh5_uuid,
"uuid": openh5_uuid
}
resp = requests.post(f"https://i.waimai.meituan.com/openapi/v1/poi/food/scheme?_={int(time.time() * 1000)}",
headers=headers, data=data).json()
scheme = resp['data']['scheme']
new_shopId = scheme.split("=")[1]
return new_shopId
-
确认新的shopId是否生效
经过对比,获取到的shopId与新的shopId是一样的