
    !h                        S r SSKJr  SSKJr  SSKJr  \(       a   SSKJr  SSK	J
r
  SSKJrJr  SSKJr  SS	KJr   " S
 S5      rg)zb
DefaultHeaders downloader middleware

See documentation in docs/topics/downloader-middleware.rst
    )annotations)TYPE_CHECKING)without_none_values)Iterable)Self)RequestSpider)Crawler)Responsec                  H    \ rS rSrSS jr\SS j5       r      S	S jrSrg)
DefaultHeadersMiddleware   c                    Xl         g N_headers)selfheaderss     r/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/downloadermiddlewares/defaultheaders.py__init__!DefaultHeadersMiddleware.__init__   s    3:    c                ^    [        UR                  S   5      nU " UR                  5       5      $ )NDEFAULT_REQUEST_HEADERS)r   settingsitems)clscrawlerr   s      r   from_crawler%DefaultHeadersMiddleware.from_crawler   s)    %g&6&67P&QR7==?##r   c                d    U R                    H   u  p4UR                  R                  X45        M"     g r   )r   r   
setdefault)r   requestspiderkvs        r   process_request(DefaultHeadersMiddleware.process_request!   s)     MMDAOO&&q, "r   r   N)r   zIterable[tuple[str, str]])r   r
   returnr   )r#   r   r$   r	   r)   zRequest | Response | None)	__name__
__module____qualname____firstlineno__r   classmethodr   r'   __static_attributes__ r   r   r   r      s8    ; $ $(.	"r   r   N)__doc__
__future__r   typingr   scrapy.utils.pythonr   collections.abcr   typing_extensionsr   scrapyr   r	   scrapy.crawlerr
   scrapy.httpr   r   r0   r   r   <module>r:      s3    #   3( '&&$ r   