
    !hb                    z    S r SSKJr  SSKJr  SSKJrJrJr  \(       a  SSK	J
r
  SSKJr  SSKJr   " S S	5      rg
)zESet User-Agent header per spider or use a default value from settings    )annotations)TYPE_CHECKING)RequestSpidersignals)Self)Crawler)Responsec                  Z    \ rS rSrSrS	S
S jjr\SS j5       rSS jr      SS jr	Sr
g)UserAgentMiddleware   z9This middleware allows spiders to override the user_agentc                    Xl         g )N
user_agent)selfr   s     m/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/downloadermiddlewares/useragent.py__init__UserAgentMiddleware.__init__   s    $    c                    U " UR                   S   5      nUR                  R                  UR                  [        R                  S9  U$ )N
USER_AGENT)signal)settingsr   connectspider_opened)clscrawleros      r   from_crawler UserAgentMiddleware.from_crawler   s=      ./8M8MNr   c                <    [        USU R                  5      U l        g )Nr   )getattrr   )r   spiders     r   r   !UserAgentMiddleware.spider_opened   s    !&,Hr   c                r    U R                   (       a&  UR                  R                  SU R                   5        g )Ns
   User-Agent)r   headers
setdefault)r   requestr#   s      r   process_request#UserAgentMiddleware.process_request    s&     ??OO&&}dooFr   r   N)Scrapy)r   str)r   r	   returnr   )r#   r   r-   None)r(   r   r#   r   r-   zRequest | Response | None)__name__
__module____qualname____firstlineno____doc__r   classmethodr   r   r)   __static_attributes__ r   r   r   r      sA    C%  
I(.	"r   r   N)r3   
__future__r   typingr   scrapyr   r   r   typing_extensionsr   scrapy.crawlerr	   scrapy.httpr
   r   r6   r   r   <module>r=      s*    K "   + +&&$ r   