Skip to main content

Advanced Python HTTP/HTTP2 Client. Support tls/http2/ja3 Fingerprint Custom.

Project description

requests-go

requests-go是一个支持tls指纹修改(如ja3)和http2的http请求库,本项目基于requestsrequests(go版),使用requests做为上层请求参数处理库,requests(go版)作为底层进行网络请求。

使用requests-go

requests-go使用方法跟requests一模一样,与之唯一不同的就是多了一个tls_config参数,此参数是用于修改tls指纹信息的。

custom_tls:

import requests_go



url = "https://tls.peet.ws/api/all"

headers = {

    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"

}

tls = requests_go.tls_config.TLSConfig()

tls.ja3 = "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,16-18-5-27-0-13-11-43-45-35-51-23-10-65281-17513-21,29-23-24,0"

tls.pseudo_header_order = [

    ":method",

    ":authority",

    ":scheme",

    ":path",

]

tls.tls_extensions.cert_compression_algo = ["brotli"]

tls.tls_extensions.supported_signature_algorithms = [

    "ecdsa_secp256r1_sha256",

    "rsa_pss_rsae_sha256",

    "rsa_pkcs1_sha256",

    "ecdsa_secp384r1_sha384",

    "rsa_pss_rsae_sha384",

    "rsa_pkcs1_sha384",

    "rsa_pss_rsae_sha512",

    "rsa_pkcs1_sha512"

]

tls.tls_extensions.supported_versions = [

    "GREASE",

    "1.3",

    "1.2"

]

tls.tls_extensions.psk_key_exchange_modes = [

    "PskModeDHE"

]

tls.tls_extensions.key_share_curves = [

    "GREASE",

    "X25519"

]

tls.http2_extensions.settings = {

    "HEADER_TABLE_SIZE": 65536,

    "ENABLE_PUSH": 0,

    "MAX_CONCURRENT_STREAMS": 1000,

    "INITIAL_WINDOW_SIZE": 6291456,

    "MAX_HEADER_LIST_SIZE": 262144

}

tls.http2_extensions.settings_order = [

    "HEADER_TABLE_SIZE",

    "ENABLE_PUSH",

    "MAX_CONCURRENT_STREAMS",

    "INITIAL_WINDOW_SIZE",

    "MAX_HEADER_LIST_SIZE"

]

tls.http2_extensions.connection_flow = 15663105

response = requests_go.get(url=url, headers=headers, tls_config=tls)

兼容requests:

import requests_go as requests	# 想要兼容requests改变requests_go的包名为requests即可

tls_config指纹信息

tls_config指纹信息每项指纹的作用可以参考config.py的源码,如若不知可直接使用to_tls_config函数将访问https://tls.peet.ws/api/all后的json结果转换为`TLSConfig`即可(暂不支持)。

注意:不能自行设置content-length,否则会出现未知错误!

打包python项目

python setup.py install

python setup.py build

python setup.py sdist

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests_go-0.1.tar.gz (32.0 MB view hashes)

Uploaded Source

Built Distribution

requests_go-0.1-py3.9.egg (32.2 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page