内容僅供參考學習
問題展示:
點一個連結進入網頁,取不到任何資料的
但是通過搜尋進入店鋪發現評論能夠正常擷取到
解決方案:
事實上是店鋪的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是一樣的