
    !h                        S SK Jr  S SKrS SKJr  S SKJr  S SKJr  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Jr  \(       a  S SKJr  S SKJr   " S S\
5      rg)    )annotationsN)	Namespace)TYPE_CHECKING)is_url)ScrapyCommand)
UsageError)RequestResponse)SequenceExclude)DefaultSpiderspidercls_for_request)ArgumentParser)Spiderc                  v   ^  \ rS rSrSrSS jrSS jrSS jrSU 4S jjrSS jr	SS jr
SS	 jrSS
 jrSrU =r$ )Command   Fc                    g)Nz[options] <url> selfs    \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/commands/fetch.pysyntaxCommand.syntax   s         c                    g)Nz'Fetch a URL using the Scrapy downloaderr   r   s    r   
short_descCommand.short_desc   s    8r   c                     g)NzwFetch a URL using the Scrapy downloader and print its content to stdout. You may want to use --nolog to disable loggingr   r   s    r   	long_descCommand.long_desc   s    I	
r   c                   > [         TU ]  U5        UR                  SSSS9  UR                  SSSSS	9  UR                  S
SSSSS9  g )Nz--spiderspiderzuse this spider)desthelpz	--headersheaders
store_truez+print response HTTP headers instead of body)r#   actionr$   z--no-redirectno_redirectFz<do not handle HTTP 3xx status codes and print response as-is)r#   r'   defaultr$   )superadd_optionsadd_argument)r   parser	__class__s     r   r+   Command.add_options$   si    F#JX<MN>	 	 	
 	O 	 	
r   c                    UR                  5        H+  u  p4U H   nU R                  US-   U-   S-   U-   5        M"     M-     g )N    s   : )items_print_bytes)r   r%   prefixkeyvaluesvalues         r   _print_headersCommand._print_headers5   s?    "==?KC!!&4-#"5"="EF   +r   c                   UR                   (       aa  UR                  (       d   eU R                  UR                  R                   S5        [        S5        U R                  UR                   S5        g U R	                  UR
                  5        g )N   >>   <)r%   requestr8   printr3   body)r   responseoptss      r   _print_responseCommand._print_response:   sc    <<#### 0 0 8 8$?#J 0 0$7hmm,r   c                \    [         R                  R                  R                  US-   5        g )N   
)sysstdoutbufferwrite)r   bytes_s     r   r3   Command._print_bytesC   s    

/r   c                f  ^ [        U5      S:w  d  [        US   5      (       d  [        e[        US   U R                  SU0SS9mUR
                  (       d#  [        [        SS5      5      TR                  S'   OSTR                  S	'   [        nU R                  (       d   eU R                  R                  nUR                  (       a  UR                  UR                  5      nO[        UTU5      nU4S
 jnXSl        U R                  R!                  U5        U R                  R                  5         g )N   r   rB   T)callback	cb_kwargsdont_filteri,  i  handle_httpstatus_listhandle_httpstatus_allc                  >#    T7v   g 7f)Nr   )r   r>   s    r   startCommand.run.<locals>.start^   s     Ms   
)lenr   r   r	   rC   r(   r   rangemetar   crawler_processspider_loaderr"   loadr   rU   crawl)r   argsrB   	spiderclsr[   rU   r>   s         @r   runCommand.runF   s    t9>QG))tn	
 5DU3PS_5UGLL1248GLL01"/	####,,::;;%**4;;7I-mWiPI	  ""9-""$r   r   )returnstr)r-   r   rb   None)r%   zdict[bytes, list[bytes]]r4   bytesrb   rd   )rA   r
   rB   r   rb   rd   )rK   re   rb   rd   )r^   z	list[str]rB   r   rb   rd   )__name__
__module____qualname____firstlineno__requires_projectr   r   r   r+   r8   rC   r3   r`   __static_attributes____classcell__)r.   s   @r   r   r      s7    !9

"G
-0% %r   r   )
__future__r   rG   argparser   typingr   	w3lib.urlr   scrapy.commandsr   scrapy.exceptionsr   scrapy.httpr	   r
   scrapy.utils.datatypesr   scrapy.utils.spiderr   r   r   scrapyr   r   r   r   r   <module>rw      s:    " 
     ) ( ) 2 D'O%m O%r   