js解密——携程景点

js解密——携程景点

摘要:无意中发现携程首页游记js加密还是挺简单的,就是通过断点获取一系列固定值和获取当前时间戳

页面分析

  1. 分析地址
    https://you.ctrip.com/

  2. 抓包
    点击下一页,网站通过axios发送请求,并返回json数据!
    在这里插入图片描述
    在这里插入图片描述

  3. 查看请求参数
    在这里插入图片描述

x-traceID是关键,需要查看源码断点得出

x-traceID: 09031062314374847116-1679926910333-1117239

还有携带json数据,pageIndex是页码,for循环改变pageIndex值

    data = {
        "head": {
            "cid": "09031062314374847116", 
            "ctok": "", "cver": "1.0", "lang": "01", "sid": "8888",
            "syscode": "999", 
            "auth": "", 
            "xsid": "", 
            "extension": []
        }, 
        "districtId": 0, 
        "sourceFrom": 1,
        "type": 3,
        "pageIndex": 1}

断点分析

  1. 点击查看源码

在这里插入图片描述

  1. ctrl+F快速定位x-traceID,并如图打上断点

在这里插入图片描述
可见x-traceID的值就是n

 e = e + o + "_fxpcqlniredt=" + t + "&x-traceID=" + n

t是固定值,1e7也是,如下图得出

 var n = t + "-" + (new Date).getTime() + "-" + Math.floor(1e7 * Math.random());

在这里插入图片描述
在这里插入图片描述

参数都获得,就需要python代码实现解析了

代码编写

以下代码得出x-traceID的值

import random
import time


t="09031062314374847116"
time=round(time.time()*1000)
num=int(10000000*random.random())


n=t+"-"+str(time)+"-"+str(num)

print(n)
#输出结果:09031062314374847116-1680004916269-3199960

请求

源码:

import random
import requests
import time


t="09031062314374847116"
time=round(time.time()*1000)
num=int(10000000*random.random())


n=t+"-"+str(time)+"-"+str(num)

print(n)

headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41',
    'referer': 'https://you.ctrip.com/',
}

for i in range(1,3):
    data = {
        "head": {
            "cid": "09031062314374847116", 
            "ctok": "", "cver": "1.0", "lang": "01", "sid": "8888",
            "syscode": "999", 
            "auth": "", 
            "xsid": "", 
            "extension": []
        }, 
        "districtId": 0, 
        "sourceFrom": 1,
        "type": 3,
        "pageIndex": i}
    url='https://m.ctrip.com/restapi/soa2/22670/getRecommendTravel?_fxpcqlniredt=09031062314374847116&x-traceID='+str(n)

    res=requests.post(url,headers=headers,json=data)
    print(res)
    print(res.json()['travelInfoList'])
    print('-----------------')

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值