首页
/ Python-TLS-Client 高级HTTP客户端库使用指南

Python-TLS-Client 高级HTTP客户端库使用指南

2026-02-06 05:52:25作者:管翌锬

项目简介

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

项目优势

  1. 高度可定制: 支持深度定制TLS参数和HTTP/2设置
  2. 浏览器模拟: 准确模拟多种浏览器和设备的TLS指纹
  3. 安全性增强: 支持证书锁定和TLS扩展随机排序
  4. 易于使用: 基于requests的API设计,学习成本低
  5. 跨平台: 支持Windows、Linux、macOS等多个平台

通过以上介绍,你应该能够顺利地开始使用 Python-TLS-Client 进行HTTP请求及相关的网络编程任务,充分利用其提供的高级特性和灵活性。

登录后查看全文
热门项目推荐
相关项目推荐