声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口 等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间点击头像看简介或私信联系我删除博客!
部分python
# ---------- 主流程 ----------
def main():
.......................
from test_fare_detail import fare_payload_from_item
from test_fare_curl import COOKIES_DICT
ck = dict(client.cookies)
if "acw_tc" not in ck:
client.import_cookies([(k, v, ".ceair.com", "/")
for k, v in COOKIES_DICT.items() if k not in ck])
print("inject acw_tc:", "acw_tc" in COOKIES_DICT, "| session cookies:",
list(dict(client.cookies).keys()))
else:
print("session already has acw_tc:", ck["acw_tc"][:20])
fp = fare_payload_from_item(items[0])
af = ajax_headers(nav_path, dep_date)
af['x-tingyun'] = build_x_tingyun()
st = now_ms()
rf = client.post(BASE + "/portal/v3/shopping/fareDetail", headers=af, json=fp)
fjs = "json" in rf.headers.get("content-type", "")
print("fareDetail:", rf.status_code,
"blocked=", "Try again later" in rf.text or rf.status_code == 403,
"json=", fjs, f"({now_ms() - st}ms)")
if fjs:
fd = json.loads(rf.text)
print("fare resultCode:", fd.get("resultCode"))
data = fd.get("data")
if isinstance(data, dict):
print(json.dumps(data, ensure_ascii=False)[:800])
else:
print(rf.text[:150])