JA3

 request

import random

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.ssl_ import create_urllib3_context

ORIGIN_CIPHERS = ('ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
                  'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES')


class DESAdapter(HTTPAdapter):
    def __init__(self, *args, **kwargs):
        """
        A TransportAdapter that re-enables 3DES support in Requests.
        """
        CIPHERS = ORIGIN_CIPHERS.split(':')
        random.shuffle(CIPHERS)
        self.CIPHERS = ':'.join(CIPHERS) + ':!aNULL:!eNULL:!MD5'
        super().__init__(*args, **kwargs)

    def get_connection(self, *args, **kwargs):
        obj = super(DESAdapter, self).get_connection(*args, **kwargs)
        obj.conn_kw['ssl_context'] = create_urllib3_context(ciphers=self.CIPHERS)
        return obj


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.71'
}
s = requests.Session()
s.headers.update(headers)

s.mount('https://', DESAdapter())
resp = s.get('https://tls.browserleaks.com/json')
print(resp.text)

Scrapy

origin_ciphers = ('ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
                  'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES')
ciphers = origin_ciphers.split(':')
random.shuffle(ciphers)
settings.set('DOWNLOADER_CLIENT_TLS_CIPHERS', ':'.join(ciphers) + ':!aNULL:!eNULL:!MD5')

aHR0cHM6Ly93d3cubXMuZ292LmNuL3pmeHhnay9mZHpkZ2tuci96ZG1zeHgvc3Roai9ocGdzLmh0bQ==

这个要修改 DOWNLOADER_CLIENT_TLS_METHOD='TLSv1.2'

绕过TLS/akamai指纹护盾_什么是akamai hash-优快云博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值