
    3 d
                     v    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ  G d d	e          ZdS )
    N)is_url)ScrapyCommand)
UsageError)Request)SequenceExclude)DefaultSpiderspidercls_for_requestc                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )CommandFc                     dS )Nz[options] <url> selfs    5lib/python3.11/site-packages/scrapy/commands/fetch.pysyntaxzCommand.syntax   s          c                     dS )Nz'Fetch a URL using the Scrapy downloaderr   r   s    r   
short_desczCommand.short_desc   s    88r   c                     	 dS )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_desczCommand.long_desc   s    I	
 	
r   c                     t          j        | |           |                    ddd           |                    dddd	           |                    d
dddd           d S )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   )r   add_optionsadd_argument)r   parsers     r   r    zCommand.add_options   s    !$///JX<MNNN>	 	 	
 	
 	
 	O 	 	
 	
 	
 	
 	
r   c                     |                                 D ]+\  }}|D ]#}|                     |dz   |z   dz   |z              $,d S )N    s   : )items_print_bytes)r   r   prefixkeyvaluesvalues         r   _print_headerszCommand._print_headers-   sl    "==?? 	G 	GKC G G!!&4-#"5"="EFFFFG	G 	Gr   c                     |j         rL|                     |j        j         d           t          d           |                     |j         d           d S |                     |j                   d S )N   >>   <)r   r+   requestprintr&   body)r   responseoptss      r   _print_responsezCommand._print_response2   sn    < 	- 0 8$???#JJJ 0$77777hm,,,,,r   c                 T    t           j        j                            |dz              d S )N   
)sysstdoutbufferwrite)r   bytes_s     r   r&   zCommand._print_bytes:   s%    
/////r   c                    t          |          dk    st          |d                   st                      t          |d         | j        d|id          |j        s&t          t          dd                    j        d<   n
dj        d	<   t          }| j
        j        }|j        r|                    |j                  }nt          ||          }| j
                            |fd
           | j
                                         d S )N   r   r4   T)callback	cb_kwargsdont_filteri,  i  handle_httpstatus_listhandle_httpstatus_allc                  
     gS )Nr   )r0   s   r   <lambda>zCommand.run.<locals>.<lambda>S   s	    gY r   )start_requests)lenr   r   r   r5   r   r   rangemetar   crawler_processspider_loaderr   loadr	   crawlstart)r   argsr4   	spiderclsrK   r0   s        @r   runzCommand.run=   s   t99> 	Q 	,,G)tn	
 
 
  	95DU3PS__5U5UGL12248GL01!	,:; 	Q%**4;77II-mWiPPI""9=N=N=N=N"OOO""$$$$$r   N)__name__
__module____qualname__requires_projectr   r   r   r    r+   r5   r&   rQ   r   r   r   r   r      s        ! ! !9 9 9
 
 

 
 
"G G G
- - -0 0 0% % % % %r   r   )r8   	w3lib.urlr   scrapy.commandsr   scrapy.exceptionsr   scrapy.httpr   scrapy.utils.datatypesr   scrapy.utils.spiderr   r	   r   r   r   r   <module>r\      s    



       ) ) ) ) ) ) ( ( ( ( ( (       2 2 2 2 2 2 D D D D D D D DH% H% H% H% H%m H% H% H% H% H%r   