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请求及相关的网络编程任务,充分利用其提供的高级特性和灵活性。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00