Python-TLS-Client 高级HTTP客户端库使用指南
项目简介
Python-TLS-Client 是一个基于 requests 和 tls-client 的高级HTTP库,专为Python开发者设计。它提供了类似于 requests 的简洁API,同时增加了更多HTTPS连接的定制选项,如客户端标识符模拟(例如Chrome、Firefox等浏览器版本),以及TLS扩展的随机排序功能,以增强网络请求的匿名性和兼容性。
该库支持多种客户端标识符模拟,包括Chrome、Firefox、Opera、Safari、iOS、iPadOS和Android等主流浏览器和移动设备,适用于Web爬虫、API调用等多种场景,采用MIT许可协议发布。
安装方法
要安装 Python-TLS-Client,只需使用pip命令:
pip install tls-client
快速开始
基础使用示例
以下是一个简单的GET请求示例,模拟Chrome 112浏览器进行请求:
import tls_client
session = tls_client.Session(
client_identifier="chrome112",
random_tls_extension_order=True
)
res = session.get(
"https://www.example.com/",
headers={
"key1": "value1",
},
proxy="http://user:password@host:port"
)
print(res.text)
支持的客户端标识符
Python-TLS-Client 支持多种客户端标识符:
- Chrome: chrome_103, chrome_104, chrome_105, chrome_106, chrome_107, chrome_108, chrome109, Chrome110, chrome111, chrome112, chrome_116_PSK, chrome_116_PSK_PQ, chrome_117, chrome_120
- Firefox: firefox_102, firefox_104, firefox108, Firefox110, firefox_117, firefox_120
- Opera: opera_89, opera_90
- Safari: safari_15_3, safari_15_6_1, safari_16_0
- iOS: safari_ios_15_5, safari_ios_15_6, safari_ios_16_0
- iPadOS: safari_ios_15_6
- Android: okhttp4_android_7, okhttp4_android_8, okhttp4_android_9, okhttp4_android_10, okhttp4_android_11, okhttp4_android_12, okhttp4_android_13
高级定制功能
自定义TLS配置
Python-TLS-Client 允许进行深度定制,包括JA3字符串、HTTP/2设置、支持的签名算法等:
import tls_client
session = tls_client.Session(
ja3_string="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,29-23-24,0",
h2_settings={
"HEADER_TABLE_SIZE": 65536,
"MAX_CONCURRENT_STREAMS": 1000,
"INITIAL_WINDOW_SIZE": 6291456,
"MAX_HEADER_LIST_SIZE": 262144
},
h2_settings_order=[
"HEADER_TABLE_SIZE",
"MAX_CONCURRENT_STREAMS",
"INITIAL_WINDOW_SIZE",
"MAX_HEADER_LIST_SIZE"
],
supported_signature_algorithms=[
"ECDSAWithP256AndSHA256",
"PSSWithSHA256",
"PKCS1WithSHA256",
"ECDSAWithP384AndSHA384",
"PSSWithSHA384",
"PKCS1WithSHA384",
"PSSWithSHA512",
"PKCS1WithSHA512",
],
supported_versions=["GREASE", "1.3", "1.2"],
key_share_curves=["GREASE", "X25519"],
cert_compression_algo="brotli",
pseudo_header_order=[
":method",
":authority",
":scheme",
":path"
],
connection_flow=15663105,
header_order=[
"accept",
"user-agent",
"accept-encoding",
"accept-language"
]
)
res = session.post(
"https://www.example.com/",
headers={
"key1": "value1",
},
json={
"key1": "key2"
}
)
证书锁定功能
Python-TLS-Client 支持证书锁定功能,增强安全性:
import tls_client
session = tls_client.Session(
certificate_pinning={
"example.com": [
"NQvyabcS99nBqk/nZCUF44hFhshrkvxqYtfrZq3i+Ww=",
"4a6cdefI7OG6cuDZka5NDZ7FR8a60d3auda+sKfg4Ng=",
"x4QzuiC810K5/cMjb05Qm4k3Bw5zBn4lTdO/nEW/Td4="
]
}
)
res = session.get(
"https://www.example.com/",
headers={
"key1": "value1",
},
proxy="http://user:password@host:port"
)
打包部署指南
如果使用Pyinstaller或Pyarmor打包应用程序,需要添加相应的依赖文件:
Linux - Ubuntu / x86:
--add-binary '{path_to_library}/tls_client/dependencies/tls-client-x86.so:tls_client/dependencies'
Linux Alpine / AMD64:
--add-binary '{path_to_library}/tls_client/dependencies/tls-client-amd64.so:tls_client/dependencies'
MacOS M1 and older:
--add-binary '{path_to_library}/tls_client/dependencies/tls-client-x86.dylib:tls_client/dependencies'
MacOS M2:
--add-binary '{path_to_library}/tls_client/dependencies/tls-client-arm64.dylib:tls_client/dependencies'
Windows:
--add-binary '{path_to_library}/tls_client/dependencies/tls-client-64.dll;tls_client/dependencies'
应用场景
网络爬虫开发
Python-TLS-Client 特别适合网络爬虫开发,可以模拟不同浏览器指纹,避免被网站识别为自动化工具:
session = tls_client.Session(client_identifier="firefox_104")
res = session.get("https://target-site.com/")
API测试和开发
通过启用TLS扩展的随机顺序,增加请求的不可预测性,对于需要更高匿名要求的API测试尤为重要:
session.random_tls_extension_order = True
项目优势
- 高度可定制: 支持深度定制TLS参数和HTTP/2设置
- 浏览器模拟: 准确模拟多种浏览器和设备的TLS指纹
- 安全性增强: 支持证书锁定和TLS扩展随机排序
- 易于使用: 基于requests的API设计,学习成本低
- 跨平台: 支持Windows、Linux、macOS等多个平台
通过以上介绍,你应该能够顺利地开始使用 Python-TLS-Client 进行HTTP请求及相关的网络编程任务,充分利用其提供的高级特性和灵活性。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00