开源一个 Python JA3 请求库,可以自定义 JA3 指纹并且内置 1200 多个 JA3 指纹,如何使用?

爬虫中可能遇到你什么参数都拼对了但是还是没法请求的情况,没错,你可能是遇到了 JA3 指纹,从 TLS 层面就已经把你识别了,所以再做什么也是无用,放心他能帮你。虽然只是套壳但是能让 Python 直接调用也是很好了,你也可以基于此方案实现更高级的请求库。

Github: https://github.com/rev1si0n/ja3


开源一个 Python JA3 请求库,可以自定义 JA3 指纹并且内置 1200 多个 JA3 指纹,如何使用?

9 回复

这个库看起来是专门用来模拟特定客户端TLS指纹的,挺有意思的。要使用它,你得先安装:

pip install curl_cffi

基本用法很简单,直接指定JA3字符串就行:

from curl_cffi import requests

# 使用特定的JA3指纹
resp = requests.get(
    "https://tls.browserleaks.com/json",
    ja3="771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0",
    impersonate="chrome110"
)
print(resp.json())

如果你要用内置的指纹库,先看看有哪些可用的:

from curl_cffi import CurlOpt, Curl
import json

curl = Curl()
curl.setopt(CurlOpt.VERBOSE, True)
curl.setopt(CurlOpt.JA3, "chrome110")  # 直接用名称调用内置指纹
curl.setopt(CurlOpt.URL, "https://tls.browserleaks.com/json")
curl.perform()

要查看所有内置指纹:

from curl_cffi import ja3

print(json.dumps(ja3, indent=2))

这库的核心就是让你能绕过一些JA3检测,比如爬虫时模拟真实浏览器。注意每个请求都要指定JA3,不然会用默认的。

一句话建议:用这个库可以轻松模拟不同客户端的TLS指纹。

这底层就是一个 .wrapper.ja3.so Golang 写的模块?

感谢分享

正在做 JA4 的识别需求, 而且也不止依赖 JA4 ,还会结合其他特征。 所以除非 99.99%模拟,不然还是会被抓。

支持。 瞅了一眼,核心还是依赖于 github.com/refraction-networking/utls

是的啊,基于 CycleTLS ,套壳。因为常用 Python 。

是的永无止境,这种用户端都可以伪造,不过也能拦很多了。都基于访问行为来了

已经是三年前的代码了啊

回到顶部