janus-requests
requests 兼容的 HTTP 客户端,TLS ClientHello 和 HTTP/2 帧逐字节可控:扩展顺序、GREASE、ALPS、密码套件、SETTINGS、WINDOW_UPDATE、伪头顺序、HPACK 编码都由 profile 决定。核心是 Rust,TLS 用打过补丁的 OpenSSL 4.0.3(静态链接在 wheel 里)。
uv add janus-requests
用法
from janus_requests import JanusSession
with JanusSession(janus="chrome155", headers={"User-Agent": "..."}, proxy="http://127.0.0.1:7890", retry_num=2) as s:
r = s.get("https://example.com/")
print(r.status_code, r.raw.version_string)
- 不带任何默认请求头,发出去的头只有你给的(外加 Host / Content-Length / Cookie)
verify默认关,不读环境变量和系统代理janus=接受内置名chrome155或JanusProfilelogs=func(req, resp)每个响应回调一次,retry_num=只重试连接类错误timeout=可以设在 session 上(秒数或(connect, read)),请求级timeout=优先- 请求级
headers=覆盖 session 的同名头,值为None表示这次不发 JanusAsyncSession是 asyncio 版本;import janus_requests as requests可当 requests 用
从真浏览器抓 profile
uv add "janus-requests[capture]"
uv run janus-capture --name my_chrome
# 浏览器打开 https://localhost:8443/
打开页面当场写出 my_chrome.py 和 my_chrome.json,import my_chrome; my_chrome.session() 即可复现这个浏览器。页面脚本随后再开几轮新连接(--rounds,默认 4),补上扩展乱序和会话恢复(PSK)。抓取时关掉系统代理,否则抓到的是代理的指纹。
许可证
MIT。wheel 里静态链接的 OpenSSL(含 Janus 的 ClientHello 补丁)按 Apache-2.0 发布,zlib、brotli、zstd 和 Rust 依赖的许可证见 wheel 的 .dist-info/licenses/。
Metadata
Release files for janus-requests 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| janus_requests-0.2.3-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| janus_requests-0.2.3-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
Total release size: 9.7 MB
Release files / janus_requests-0.2.3-cp310-abi3-win_amd64.whl
| Download URL | janus_requests-0.2.3-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6ec679cc40767ac45f7e6861c575cc6824a4d7a54c36e38c61f24be9c4076fab
|
|
BLAKE2b-256 checksum How to use checksums |
d8f053d1ddc5a02f1a28ed1cbd39159f39e64225ba16736ee410a12e3973580f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / janus_requests-0.2.3-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | janus_requests-0.2.3-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.4 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8938afc6c8e2747121765f67f4b574d06f645ad7a000a5fb302f484c5627fee6
|
|
BLAKE2b-256 checksum How to use checksums |
87f386ccb16532c8e10e5b9585850461e40e1fed8b00cbd2c8cf01272af0265a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for janus-requests 0.2.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.