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请求及相关的网络编程任务,充分利用其提供的高级特性和灵活性。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0138- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniCPM-V-4.6这是 MiniCPM-V 系列有史以来效率与性能平衡最佳的模型。它以仅 1.3B 的参数规模,实现了性能与效率的双重突破,在全球同尺寸模型中登顶,全面超越了阿里 Qwen3.5-0.8B 与谷歌 Gemma4-E2B-it。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
MusicFreeDesktop插件化、定制化、无广告的免费音乐播放器TypeScript00