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

See documentation in docs/topics/downloader-middleware.rst
    )annotations)TYPE_CHECKING)basic_auth_header)RequestSpidersignals)url_is_from_any_domain)Self)Crawler)Responsec                  L    \ rS rSrSr\SS j5       rS	S jr      S
S jrSr	g)HttpAuthMiddleware   zUSet Basic HTTP Authorization header
(http_user and http_pass spider class attributes)c                x    U " 5       nUR                   R                  UR                  [         R                  S9  U$ )N)signal)r   connectspider_opened)clscrawleros      l/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/downloadermiddlewares/httpauth.pyfrom_crawlerHttpAuthMiddleware.from_crawler   s/    E8M8MN    c                    [        USS5      n[        USS5      nU(       d  U(       a"  [        X#5      U l        UR                  U l        g g )N	http_user 	http_pass)getattrr   authhttp_auth_domaindomain)selfspiderusrpwds       r   r    HttpAuthMiddleware.spider_opened"   sA    fk2.fk2.#)#3DI 11DK r   c                    [        U SS 5      nU(       aU  SUR                  ;  aE  U R                  (       a&  [        UR                  U R                  /5      (       a  X1R                  S'   g )Nr    s   Authorization)r   headersr"   r	   url)r#   requestr$   r    s       r   process_request"HttpAuthMiddleware.process_request)   sO     tVT* 7[[$:7;;$V$V04OO,-r   )r    r"   N)r   r   returnr
   )r$   r   r.   None)r+   r   r$   r   r.   zRequest | Response | None)
__name__
__module____qualname____firstlineno____doc__classmethodr   r   r,   __static_attributes__ r   r   r   r      s=    9  
2

(.
	"
r   r   N)r4   
__future__r   typingr   
w3lib.httpr   scrapyr   r   r   scrapy.utils.urlr	   typing_extensionsr
   scrapy.crawlerr   scrapy.httpr   r   r7   r   r   <module>r@      s4    #   ( + + 3&&$ r   