You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Requests模拟请求时,如何将车架号转为PAGEDATA参数值?

解决车架号转PAGEDATA参数的方法

先拆解给定的PAGEDATA值,解码后可发现它的结构是固定前缀 + 车架号 + 固定后缀,再整体转换为十六进制字符串:

  1. 确定字符串模板
    固定部分为 RC142 on Click~RC126 ~RC130 ~RC134 ,末尾追加 ~,中间填入目标车架号,最终模板为:

    RC142 on Click~RC126 ~RC130 ~RC134 {车架号}~
    

    比如填入车架号JTDJC123705048557后,得到字符串:

    RC142 on Click~RC126 ~RC130 ~RC134 JTDJC123705048557~
    
  2. 转换为十六进制字符串
    将上述拼接后的字符串中每个字符,转换为两位大写十六进制表示,再拼接所有字符,即可得到目标PAGEDATA参数值。

Python实现转换及完整脚本

import re
import requests

def vin_to_pagedata(vin):
    # 构造基础字符串模板
    base_str = f"RC142 on Click~RC126 ~RC130 ~RC134 {vin}~"
    # 逐个字符转十六进制并拼接
    pagedata = ''.join(f"{ord(char):02X}" for char in base_str)
    return pagedata

link = 'https://www.mobilit.fgov.be/WebdivPub_FR/wmvpstv1_fr.jsp'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}
# 替换为目标车架号
target_vin = 'JTDJC123705048557'

with requests.Session() as s:
    s.headers.update(headers)
    res = s.get(link)
    session_id = res.url.split("=")[1]
    p_step_id = re.findall(r"pStepId=(.*?);", res.text)[0]
    window_id = re.findall(r"windowId=(.*?);", res.text)[0]
    
    # 动态生成PAGEDATA参数
    params = {
        'SUBSESSIONID': session_id,
        'DYNAMIC': 'DOREQUEST',
        'NAME': 'CMV_WD_PBL01_CONSULT_STATUS',
        'PSTEPID': p_step_id,
        'WINDOWID': window_id,
        'PAGEDATA': vin_to_pagedata(target_vin)
    }
    
    resp = s.get(link, params=params)
    print(resp.text)

验证说明

运行脚本后,生成的PAGEDATA值会和抓包得到的完全一致,无需硬编码参数;更换车架号只需修改target_vin变量即可。

内容的提问来源于stack exchange,提问作者MITHU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:01:24