首页 > 其他分享 >scrapy ja3 tls

scrapy ja3 tls

时间:2023-09-14 10:44:49浏览次数:33  
标签:tls self ciphers request ja3 spider scrapy download

 

 

 

# -*- coding:utf-8 -*-
import random

from scrapy.core.downloader.contextfactory import ScrapyClientContextFactory
from scrapy.core.downloader.handlers.http11 import HTTP11DownloadHandler, ScrapyAgent

ORIGIN_CIPHERS = 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES'


def shuffle_ciphers():
    ciphers = ORIGIN_CIPHERS.split(":")
    random.shuffle(ciphers)

    ciphers = ":".join(ciphers)

    print("________")
    print(ciphers)
    print("________")

    return ciphers + ":!aNULL:!MD5:!DSS"


class MyHTTPDHandler(HTTP11DownloadHandler):

    def download_request(self, request, spider):
        """Return a deferred for the HTTP download"""

        tls_cliphers = shuffle_ciphers()
        _contextFactory = ScrapyClientContextFactory(tls_ciphers=tls_cliphers)

        agent = ScrapyAgent(
            contextFactory=_contextFactory,
            pool=self._pool,
            maxsize=getattr(spider, 'download_maxsize', self._default_maxsize),
            warnsize=getattr(spider, 'download_warnsize', self._default_warnsize),
            fail_on_dataloss=self._fail_on_dataloss,
            crawler=self._crawler,
        )
        return agent.download_request(request)


class MyHTTPDownloadHandler(MyHTTPDHandler):
    def download_request(self, request, spider):
        return super().download_request(request, spider)

 

 

 

 

 

 

         'DOWNLOAD_HANDLERS': {
             'http': 'middlewares.sc_middlewares.MyHTTPDownloadHandler',
             'https': 'middlewares.sc_middlewares.MyHTTPDownloadHandler',
         },

 

标签:tls,self,ciphers,request,ja3,spider,scrapy,download
From: https://www.cnblogs.com/angdh/p/17701847.html

相关文章

  • scrapy框架的user-agent替换列表
    在我们请求的时候会遇见ua反爬我们可以用一个ua的列表来更换实现反扒classRandomUADownloaderMiddleware:defprocess_request(self,request,spider):ua_list=["Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)......
  • scrapy 用法
    1、创建scrapy项目:在终端Terminal运行命令:scrapystartproject【项目名称】scrapystartprojectlfj_pro PSD:\pythonProject8_scrapy>scrapystartprojectlfj_proNewScrapyproject'lfj_pro',usingtemplatedirectory'C:\Users\Administrator\AppData......
  • 解决问题:请求被中止:未能创建SSL/TLS安全通道。
    在调用WebClient时,有时报“请求被中止:未能创建SSL/TLS安全通道。”的故障,网上有不少方法是写道在WebClient前加入安全配置协议:ServicePointManager.SecurityProtocol=SecurityProtocolType.Ssl3//|SecurityProtocolType.SystemDefault//注意:不要加入此......
  • Scrapy深入使用_存储
    目录Scrapy深入使用-存储scrapy的深入使用学习目标:1、了解scrapy的debug信息2、了解scrapyShell3、settings.py中的设置信息3.1为什么项目中需要配置文件3.2配置文件中的变量使用方法3.3settings.py中的重点字段和含义4、pipeline管道的深入使用4.1使用终端命令行进行存储4.2......
  • HTTPS加密协议详解:TLS/SSL握手过程
    1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。(1).client_hello客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下:支持的最高TSL协议版本version,从低到高依次SSLv2SS......
  • glibc2.35-通过tls_dtor_list劫持exit执行流程
    前言glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。__call_tls_dtors在......
  • glibc2.35-通过tls_dtor_list劫持exit执行流程
    前言glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。__call_tls_dtors在程序......
  • 【问题记录】The TLS connection was non-properly terminated.
    系统:ubuntu22.04TLSgit克隆到本地时报错root@mail:/mail#gitclonehttps://github.com/mailcow/mailcow-dockerizedCloninginto'mailcow-dockerized'...fatal:unabletoaccess'https://github.com/mailcow/mailcow-dockerized/':GnuTLSrecverror......
  • What is TLS ?
    TLSintrductionTLS是一种保障数据传输安全的一种技术(方案),它在传输层工作。想知道TLS和SSL的关系,先看看他们的历史:人们遇到数据传输安全问题1994SSL1.01995SSL2.01996SSL3.01999TLS1.0=SSL3.02006TLS1.1=SSL3.22008TLS1.2=SSL3.3...可以看出,TLS......
  • 【6.0】爬虫之scrapy框架
    【一】Scrapy框架基本介绍【1】Scrapy一个开源和协作的框架其最初是为了页面抓取(更确切来说,网络抓取)所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所......