Advanced Python HTTP Client.
Project description
Python-TLS-Client
Python-TLS-Client is an advanced HTTP library based on requests and tls-client.
Installation
pip install xtls-client
Examples
The syntax is inspired by requests, so its very similar and there are only very few things that are different.
Example 1 - Preset:
import xtls_client
# You can also use the following as `client_identifier`:
# 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
#
# more client identifiers can be found in settings.py
session = xtls_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"
)
Example 2 - Custom:
import xtls_client
session = xtls_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"
}
)
Pyinstaller / Pyarmor
If you want to pack the library with Pyinstaller or Pyarmor, make sure to add this to your command:
Linux - Ubuntu / x86:
--add-binary '{path_to_library}/xtls_client/dependencies/tls-client-x86.so:xtls_client/dependencies'
Linux Alpine / AMD64:
--add-binary '{path_to_library}/xtls_client/dependencies/tls-client-amd64.so:xtls_client/dependencies'
MacOS M1 and older:
--add-binary '{path_to_library}/xtls_client/dependencies/tls-client-x86.dylib:xtls_client/dependencies'
MacOS M2:
--add-binary '{path_to_library}/xtls_client/dependencies/tls-client-arm64.dylib:xtls_client/dependencies'
Windows:
--add-binary '{path_to_library}/xtls_client/dependencies/tls-client-64.dll;xtls_client/dependencies'
Acknowledgements
Big shout out to Bogdanfinn for open sourcing his tls-client in Golang. Also I wanted to keep the syntax as similar as possible to requests, as most people use it and are familiar with it!
Python-TLS-Client
Python-TLS-Client is an advanced HTTP library based on requests and tls-client.
Installation
pip install xtls-client
Disclaimer
This is a fork of FlorianREGAZ tls-client.
I created this fork because in the original repository the binaries were not updated and bugs remained open for too long.
Usage
The project description can be found in the original repository.
https://github.com/FlorianREGAZ/Python-Tls-Client
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xtls_client-0.0.13.tar.gz.
File metadata
- Download URL: xtls_client-0.0.13.tar.gz
- Upload date:
- Size: 44.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cf8fbd0de9beef40e458ac2f39a6d018b61ca564767f86f9ab87f86c12bf8c3
|
|
| MD5 |
17412b7de5c258c497238716a0c4c36d
|
|
| BLAKE2b-256 |
f2a098cd93c8d2c9204cb6ea292b657dc2be3071103aeac0f43c2f99736a8d54
|
File details
Details for the file xtls_client-0.0.13-py3-none-any.whl.
File metadata
- Download URL: xtls_client-0.0.13-py3-none-any.whl
- Upload date:
- Size: 45.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
947648c2a3b16bdd6a28da22d783f56771bc9da0e244894dd9330c89e0e29391
|
|
| MD5 |
5a7093e5d048567b7e2c8d6445b10efc
|
|
| BLAKE2b-256 |
9260bdecb5a42bee10b6c813ff83880a67b74673d97aaa26340b25beabed7da8
|