后端网页爬虫【免费下载链接】xhshow小红书xs纯算 小红书x-s x-s-common xsc 等字段 纯算逆向项目地址https://gitcode.com/gh_mirrors/xh/xhshow点击查看免费下载xhshow是一个小红书请求签名纯算逆向 Python 库可生成x-s、x-s-common、xsc、x-rap-param等请求头字段。本文是 xhshow API 参考指南带你逐一拆解sign_headers、sign_xs、sign_xsc等核心方法的参数、返回值与常见用法帮你快速上手小红书签名纯算。 核心 API 速览表先通过一张表掌握 xhshow 的全部公共方法入口类为 Xhshow位于 client.py方法作用一句话说明sign_headers/sign_headers_get/sign_headers_post一键生成完整签名头返回x-s、x-s-common、x-t、traceid 等全部字段sign_xs/sign_xs_get/sign_xs_post生成x-s签名仅需a1cookieGET/POST 各一sign_xyw生成XYW_格式签名数据类接口如user_posted拒绝XYS_时使用sign_xs_common/sign_xsc生成x-s-common需要完整 cookies字典或字符串decode_xs/decode_x3解密签名把XYS_或mns0301_签名还原为明文get_x_t/get_b3_trace_id/get_xray_trace_id生成辅助头字段时间戳与 traceidgenerate_a1/generate_web_id生成 a1 cookie静态方法无需实例build_url/build_json_body构造平台兼容的 URL / body参数编码规则与签名算法对齐⚡ 最常用sign_headers 一键生成签名头sign_headers 是 xhshow 的全能入口一次调用即可拿到可直接用于requests的完整 headersfrom xhshow import Xhshow client Xhshow() headers client.sign_headers( methodGET, uri/api/sns/web/v1/user_posted, cookies{a1: ..., web_session: ..., webId: ...}, params{num: 30, cursor: , user_id: 123}, ) sign_headers 参数清单参数类型必填说明methodGET/POST✅请求方法两者传参方式不同见下方易错点uristr✅接口路径或完整 URL内部会自动提取路径cookiesdict/str✅完整 cookies必须包含a1否则抛ValueErrorxsec_appidstr❌应用标识默认xhs-pc-webparamsdict❌GET 请求参数GET 时传了payload会直接报错payloaddict❌POST 请求体POST 时传了params会直接报错timestampfloat❌秒级时间戳缺省取当前时间sessionSessionManager❌会话状态模拟连续操作实验性sign_formatxys/xyw❌签名格式数据类接口需用xywuser_idstr❌传入后xy-direction由 user_id 经 MurmurHash3 算出否则随机x_rapbool❌为True时额外生成x-rap-param风控头 返回值字段{ x-s: XYS_..., # 或 XYW_...取决于 sign_format x-s-common: ..., x-t: 1234567890, # 毫秒时间戳 x-b3-traceid: ..., # 16 位 x-xray-traceid: ..., # 32 位 x-mns: unload, xy-direction: 42, # 分片键1~100 # x_rapTrue 时额外包含 # x-rap-param: ... } 懒得分方法直接用便捷方法 sign_headers_get / sign_headers_post参数完全相同只是省掉了method。易错点GET 请求必须用params、POST 必须用payload两者混用会抛出ValueError(GET requests must use params, not payload)。 sign_xs单独生成 x-s 签名当你只需要x-s一个字段其余头自己控制时使用 sign_xs# GET 便捷方法只需 a1无需完整 cookies x_s client.sign_xs_get( uri/api/sns/web/v1/user_posted, a1_value..., params{num: 30}, ) # POST 便捷方法 x_s client.sign_xs_post( uri/api/sns/web/v1/login, a1_value..., payload{username: test, password: 123456}, ) sign_xs 参数清单参数必填说明method✅GET或POST大小写不敏感uri✅URI 路径或完整 URL含 query 也行内部经extract_uri提取a1_value✅cookies 中的a1值52 位xsec_appid❌默认xhs-pc-webpayload❌GET 对应 paramsPOST 对应请求体timestamp❌秒级时间戳用于各字段时间统一session❌传入SessionManager启用状态化签名返回值是完整的XYS_前缀 Base64 字符串。签名内部流程拼 content 串 → MD5 得 d 值 → 构造 144 字节 payload → XOR 变换 → 自定义 Base64 编码相关算法见 crypto.py。 sign_xyw绕过数据接口 406 的新格式2026 年 3 月起user_posted等数据类接口会拒绝XYS_格式并返回 HTTP 406此时调用 sign_xyw或给sign_headers传sign_formatxyw生成XYW_前缀签名。该路径走独立的 AES-128-CBC 加密实现位于 xyw_crypto.py参数与sign_xs完全一致。 sign_xsc / sign_xs_common生成 x-s-commonsign_xsc 是 sign_xs_common 的便捷别名二者参数相同# 字典或字符串形式的 cookie 都支持 xs_common client.sign_xsc(cookie_dictcookies)cookie_dict唯一参数完整 cookiesdict或a1...; webId...字符串均可字符串会经SimpleCookie解析。内部会基于 cookies UA 生成环境指纹与b1字段再算 CRC32 得到x9核心逻辑在 common_sign.py。⚠️ cookie 中缺少a1会抛KeyError请检查 cookie 是否完整。️ x-rap-param 风控头详解feed、搜索、笔记发布等接口需要额外的x-rap-param。两种用法方式一随 sign_headers 自动生成headers client.sign_headers_post( uri/api/sns/web/v1/feed, cookiescookies, payload{source_note_id: ...}, x_rapTrue, # 生成 x-rap-param user_id5ff..., # 可选用于 xy-direction 分片 )方式二单独调用底层算法from xhshow.core.xrap import x_rap_param value x_rap_param( //edith.xiaohongshu.com/api/sns/web/v1/feed, {source_note_id: ...}, )x_rap_param 的常用参数参数说明api形如//edith.xiaohongshu.com/api/sns/web/v1/feed的路径data请求体dict / JSON 字符串 / 原始字节均可aes_key/inner_key固定 16 字节密钥缺省随机timestamp_ms毫秒时间戳缺省当前时间sdk_version协议版本号默认 10300user_id分片值由 get_sharding_key 经 MurmurHash3 计算结果落在 1~100不传user_id时取 10~100 随机值。 SessionManager状态化签名会话实验性SessionManager 维护固定页面加载时间戳 单调递增计数器模拟真实用户连续操作理论上可提升长期稳定性from xhshow import Xhshow, SessionManager client Xhshow() session SessionManager() headers client.sign_headers_get( uri/api/sns/web/v1/user_posted, cookiescookies, params{num: 30}, sessionsession, # 同一 session 可跨多次请求复用 )多账户场景下为每个账户创建独立的SessionManager实例即可。 实用小方法速查方法返回用途get_x_t(timestampNone)int毫秒时间戳x-t头传timestamp可与其他字段时间对齐get_b3_trace_id()16 位 hexx-b3-traceidget_xray_trace_id(timestampNone, seqNone)32 位 hexx-xray-traceidget_search_id()base36 字符串搜索接口search_idget_search_request_id(){random}-{ts_ms}搜索接口request_idXhshow.generate_a1()52 位字符串生成 a1 cookie静态方法Xhshow.generate_web_id(a1)32 位 hex由 a1 推导webId静态方法build_url(base_url, params)完整 URL按平台规则编码仅转义为%3Dbuild_json_body(payload)紧凑 JSON 字符串构造与签名一致的 POST bodydecode_x3(...)/decode_xs(...)字节数组 / dict解密mns0301_/XYS_签名⏱️时间一致性技巧若手动拼装各字段请给sign_xs_get、get_x_t、get_xray_trace_id传入同一个timestamp保证x-s、x-t、x-xray-traceid的时间戳一致。⚙️ 自定义配置 CryptoConfig默认参数在 config.py 中集中定义可通过with_overrides覆盖后注入客户端from xhshow import CryptoConfig, Xhshow config CryptoConfig().with_overrides( X3_PREFIXcustom_, SEQUENCE_VALUE_MIN20, SEQUENCE_VALUE_MAX60, ) client Xhshow(configconfig) 源码路径索引模块路径说明客户端主入口client.py全部公共 API密码学处理crypto.py144 字节 payload 构造、XOR 变换x-s-common 签名common_sign.py指纹 CRC32XYW 签名xyw_crypto.pyAES-128-CBCx-rap-paramxrap.py自定义分组密码 gzip 封装会话管理session.pySessionManager/SignStateURL 工具url_utils.pyextract_uri/build_url随机数生成random_gen.pya1、traceid、search_id参数校验validators.py各签名方法的入参校验装饰器❓ 常见问题 FAQQ1调用报ValueError: Missing a1 in cookiessign_headers系列要求 cookies 中必须含a1。可用Xhshow.generate_a1()生成一个。Q2GET/POST 参数传反了会怎样直接抛ValueError提示 GET requests must use params, not payload——这是刻意设计避免签名内容串content string构造错误。Q3数据接口返回 HTTP 406说明该接口已要求XYW_格式请改用sign_xyw或在sign_headers中传sign_formatxyw。Q4feed/搜索接口签名失败大概率缺少x-rap-param在sign_headers中加x_rapTrue即可。Q5uri 可以直接传完整 URL 吗可以。内部会自动剥离协议、域名和 query只保留路径参与签名详见 extract_uri。✅ 至此xhshow 的sign_headers、sign_xs、sign_xsc等核心方法参数已全部解析完毕。日常开发记住一条主线即可简单场景用sign_headers_get/post一键出头精细控制用sign_xssign_xsc单独拼装数据接口记得切sign_formatxywfeed/搜索加上x_rapTrue。赞分享后端网页爬虫【免费下载链接】xhshow小红书xs纯算 小红书x-s x-s-common xsc 等字段 纯算逆向项目地址https://gitcode.com/gh_mirrors/xh/xhshow点击查看免费下载相关推荐如何安全重构关键代码Scientist Ruby库的核心API完全指南如何安全重构关键代码Scientist Ruby库的核心API完全指南 Scientist是一个强大的Ruby库专为安全重构关键路径代码而设计。它允许开发者开发工具代码质量safetensors API完全参考save_file、load_file等核心函数详解safetensors API完全参考save_file、load_file等核心函数详解 safetensors是Hugging Face推出的安全张量存储序列化人工智能革命性无文件Rootkitr77-rootkit完全指南与深度解析革命性无文件Rootkitr77 rootkit完全指南与深度解析 r77 rootkit是一款革命性的无文件Ring 3级Rootkit工具能够实现进程、网络安全应用安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考