吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 977|回复: 10
上一主题 下一主题
收起左侧

[Web逆向] 京东搜索接口商品数据获取及h5st参数解析

  [复制链接]
跳转到指定楼层
楼主
13955925361 发表于 2026-4-21 19:01 回帖奖励
本帖最后由 13955925361 于 2026-4-22 12:22 编辑

昨天试了下小红书的首页笔记,今天不出意外狗东首页搜索接口
数据也是可以获得了呢。主要卡点在于补环境的深度和指纹问题。
除了传统的document要补之外,大量的指纹信息被保存在了
localStorage里,一定要在浏览器中获取。来看看deepseek怎么说




来看看结果吧,如果想要搜索不同关键词,只需要修改第一张图标注的keyword即可





附上我的代码,只有两个文件。一个js和一个py,不过js里既包括了函数调用,又包括了补的环境。


js文件非常大:
直接给网站干崩溃了,各位直接在压缩包下吧,只能先单独列出Py文件。


[Python] 纯文本查看 复制代码
import json
import hashlib
import time
from curl_cffi import requests
import time
import os
import execjs
import subprocess
from functools import partial
import re

subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
# 1. 定义参数对象 (将 JS 的 null/false/true 转换为 Python 的 None/False/True)
params = {
    "enc": "utf-8",
    "pvid": "8e9a18b33d3b418f9d0980a2072c2984",
    "area": "14_1114_19784_19809",
    "page": 1,
    "mode": None,
    "concise": False,
    "newAdvRepeat": False,
    "new_interval": True,
    "s": 1
}



# 2. 核心步骤:生成 body 的 SHA-256 哈希值
# JSON.stringify(params) 对应 json.dumps(params, separators=(',', ':'))
# separators=(',', ':') 确保生成的 JSON 是紧凑的,没有多余空格,与 JS 行为一致
json_str = json.dumps(params, separators=(',', ':'))

# cryptoJs.SHA256(...).toString() 对应 hashlib.sha256(...).hexdigest()
body_hash = hashlib.sha256(json_str.encode('utf-8')).hexdigest()

# 3. 构建签名参数对象
params_h5sign = {
    "appid": "search-pc-java",
    "functionId": "pc_search_adv_Search",
    "client": "pc",
    "clientVersion": "1.0.0",
    "t": int(time.time() * 1000),  # JS 的 new Date().getTime() 是毫秒级时间戳
    "body": body_hash
}

# 4. 输出结果
# print("生成的 JSON 字符串:", json_str)
# print("\nSHA-256 Hash (body):", body_hash)
# print("\n生成的签名参数对象:")
# print(params_h5sign)


import subprocess
import json

# ... (前面的代码保持不变) ...

cmd = ["node", "./h5st.js", json.dumps(params_h5sign)]
output_text= subprocess.check_output(cmd)
# print(output_text)
def extract_h5st_method2(text):
    # 匹配从 { 开始到 } 结束的完整对象
    pattern = r'{\s*appid:\s*[^}]+\bh5st:\s*\'([^\']+)\'[^}]*}'
    match = re.search(pattern, text, re.DOTALL)
    if match:
        return match.group(1)
    return None
h5st_value = extract_h5st_method2(output_text)
print(f"提取到的 h5st 值: {h5st_value}")
print(f"h5st 长度: {len(h5st_value)}" if h5st_value else "未找到 h5st")




headers = {
    "accept": "application/json, text/plain, */*",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "cache-control": "no-cache",
    "origin": "https://search.jd.com",
    "pragma": "no-cache",
    "priority": "u=1, i",
    "referer": "https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&wq=%E6%89%8B%E6%9C%BA&pvid=8e9a18b33d3b418f9d0980a2072c2984&spmTag=YTAyMTkuYjAwMjM1Ni5jMDAwMDQ2ODkuc2VhcmNoX2NvbmZpcm0",
    "sec-ch-ua": "\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Microsoft Edge\";v=\"146\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-site",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0",
    "x-referer-page": "https://search.jd.com/Search",
    "x-rp-client": "h5_1.0.0"
}
cookies = {
    "shshshfpa": "e80d2f89-6292-f19a-e0c8-671692edb298-1742822842",
    "shshshfpx": "e80d2f89-6292-f19a-e0c8-671692edb298-1742822842",
    "jcap_dvzw_fp": "PLhLqG2LrDtMiUuyD4QWFhQLXG6Cd3Z23cCa89BkFTIMdKyQPSGeo6oQ6jD8CuzUENnSXuq8cco2LjwFcUpsXg==",
    "TrackID": "1ch5FnVVeapQOpa6oJmKKgD76cFl6STv72ZKPWGr7kQ0xxgBAQHTwTw1KvfMxQhRZjLzK1DikMDjbiUetxYLARZ03kd1vy_U1Wh0yI53nlL3gsb-pHW4IxdvLIWgMc0a5",
    "light_key": "AASBKE7rOxgWQziEhC_QY6yaX4xvIMOL4UEYMgSsTdgFgcVind4BIOYgYh6WKnf9QMkrRmQr",
    "__jdu": "17653628168171158152459",
    "mt_xid": "V2_52007VwMUVVlaVVkWSR5VBWEDElZUWFZZGk0RbAxuAxMHXF5RCB0aTggNZAQiUVxbVUYeSwVfDHYCE1lYXVlYHXkbbAdXMxVaWl9T",
    "unpl": "JF8EALNnNSttXEtWDBpXE0JETA1cW1sPHx8DbmMDAVxZTVUCTwJMEBh7XlVdWhRKFR9sbhRVXFNOUQ4eAysSEXteU11bD00VB2xXXAQDGhUQR09SWEBJJVpRXlUKSBEDa2YNZG1bS2QFGjIbFBdPX1NdVAhMHgNpZwVQVFhPVwAfCisTIExtZG5eDEkRCl9mNVVtGh8IBxwHGRERBl1SWVkKTBQKb2AMVFtYS1AMGwYYFxRDbVVuXg",
    "__jdv": "232945309|haosou-search|t_262767352_haosousearch|cpc|64193271509_0_51380d9ae6a9476e91057d00706e1f39|1774629880734",
    "areaId": "14",
    "cid": "9",
    "ipLoc-djd": "14-1114-19784-19809",
    "TARGET_UNIT": "bjcenter",
    "cn": "10",
    "__jdc": "143920055",
    "3AB9D23F7A4B3CSS": "jdd03MTKEBANDFYXLCEUFHEGQVZJBQPA54PN72JHLPIFDAUFA5IB3JJ2XJXIJEY5DTJZ7T6KYCFZUV4TRU7KGPSEP2CXWAMAAAAM5LDRD2JYAAAAADIX3P4SERHS7D4X",
    "thor": "E6F82FA843064E81389B64A7C320EA2C9AE0864145C47388FA445A73D95626E3D797E7B00C720905378FED205E63D2AD1A47A4B9BBFE05015F8190040F232FC0ED711DD0EDD5B5E3FF78F27BF6523EE6E00991199C58B484F1EEEF28BD14C3E07E2C10CF70488B45BABF31DAB317D7CCE2131E3D21F72947DBBF59D2DF6A058EF745CFB5029EFC3E195FD7F489621EC2F60A05EACE435628D4F5837ACD6BB562",
    "shshshfpb": "BApXWmMvqW_hA-4GZkNUfLlIBDmEpKwNCBgDDL21j9xJ1ItZfQtCEkUu9jn_-N9BwKuOOiyCAsqFbdL5k7PsP49kvNFvg_TSENjyC",
    "3AB9D23F7A4B3C9B": "MTKEBANDFYXLCEUFHEGQVZJBQPA54PN72JHLPIFDAUFA5IB3JJ2XJXIJEY5DTJZ7T6KYCFZUV4TRU7KGPSEP2CXWAM",
    "flash": "3_8OCbLX_iHgW77S5rt3Zl3QbdBRrh5wCaETro8_zOBLy7QoyzAdexVu7Xzfkx9wAhZ9rBgIbKcjEtccotpzpscz87t9Fc5llnGKO0uuZPazrlZ_b2qWEGz63yhs4SnRhW9eA9SlLdAPDqp3ABgfhlI-uTSF7cKkez1sTFZTktINxcQHj*",
    "__jda": "143920055.17653628168171158152459.1765362817.1775312713.1775316253.20",
    "__jdb": "143920055.1.17653628168171158152459|20.1775316253",
    "sdtoken": "AAbEsBpEIOVjqTAKCQtvQu17CSHOQDkV3LHEmNho4SfHGVvYmeYlOkp7Hnu-nxRXVDJ0gNJbv4-W6cZ7O2WPZscUwzPZ7QD3VZ0u8HP0PvazJ0f_HAxGn-8ERY0iz289EGodBGAW2wcOobqi1phO2eM"
}
url = "https://api.m.jd.com/api"
params = {
    "appid": "search-pc-java",
    "t": [
        params_h5sign['t'],
        str(int(time.time() * 1000))
    ],
    "client": "pc",
    "clientVersion": "1.0.0",
    "cthr": "1",
    "uuid": "17653628168171158152459",
    "loginType": "3",
    "keyword": "手机",
    "functionId": "pc_search_searchWare",
    "body": "\\{\"enc\":\"utf-8\",\"pvid\":\"8e9a18b33d3b418f9d0980a2072c2984\",\"area\":\"14_1114_19784_19809\",\"page\":1,\"mode\":null,\"concise\":false,\"newAdvRepeat\":false,\"new_interval\":true,\"s\":1\\}",
    "x-api-eid-token": "jdd03MTKEBANDFYXLCEUFHEGQVZJBQPA54PN72JHLPIFDAUFA5IB3JJ2XJXIJEY5DTJZ7T6KYCFZUV4TRU7KGPSEP2CXWAMAAAAM5LDRD2JYAAAAADIX3P4SERHS7D4X",
    "h5st": h5st_value}
response = requests.get(url, headers=headers, cookies=cookies, params=params)

print(response.text)
print(response)










京东.zip

107.32 KB, 下载次数: 53, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
feiyu361 + 1 + 1 用心讨论,共获提升!
zhczf + 1 + 1 我很赞同!
如若沦落 + 1 + 1 谢谢@Thanks!
homehome + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
 楼主| 13955925361 发表于 2026-4-21 19:27 |楼主
为啥我写了那么多,显示是空的
3#
lichi 发表于 2026-4-21 21:07
4#
南城 发表于 2026-4-21 22:24
5#
adu3110 发表于 2026-4-22 08:50
瞅瞅啥东西
6#
Xuanzy 发表于 2026-4-22 09:48
瞅瞅啥东西
7#
wei710972842 发表于 2026-4-22 11:16
学习一下,虽然目前还是小白,慢慢增长知识
8#
udon2333 发表于 2026-4-22 11:47
感谢分享,学习了。谢谢大佬
9#
feiyu361 发表于 2026-4-22 13:37
谢谢大佬的分享,太强了
10#
ternarybell 发表于 2026-4-22 14:59
非常强  好东西啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-4-22 17:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表