
    3 d*                         d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	  G d de          Z
 G d d          Z G d	 d
ej                  ZdS )    N)	urlencode)ScrapyCommand)LinkExtractorc                   &    e Zd ZddddZd Zd ZdS )CommandINFO   
   )	LOG_LEVELLOGSTATS_INTERVALCLOSESPIDER_TIMEOUTc                     dS )NzRun quick benchmark test )selfs    5lib/python3.11/site-packages/scrapy/commands/bench.py
short_desczCommand.short_desc   s    ))    c                     t                      5  | j                            t          d           | j                                         d d d            d S # 1 swxY w Y   d S )Ni )total)_BenchServercrawler_processcrawl_BenchSpiderstart)r   argsoptss      r   runzCommand.run   s    ^^ 	) 	) &&|6&BBB &&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   ;AAAN)__name__
__module____qualname__default_settingsr   r   r   r   r   r   r      sJ         ! * * *) ) ) ) )r   r   c                       e Zd Zd Zd ZdS )r   c                     ddl m} t          j        dddg}t	          j        |t          j         |                      | _        | j        j        	                                 d S )Nr   )get_testenvz-uz-mzscrapy.utils.benchserver)stdoutenv)
scrapy.utils.testr$   sys
executable
subprocessPopenPIPEprocr%   readline)r   r$   pargss      r   	__enter__z_BenchServer.__enter__   sc    111111t-GH$U:?VVV		!!#####r   c                     | j                                          | j                                          t          j        d           d S )Ng?)r-   killwaittimesleep)r   exc_type	exc_value	tracebacks       r   __exit__z_BenchServer.__exit__$   s7    		
3r   N)r   r   r    r0   r9   r   r   r   r   r      s2        $ $ $    r   r   c                   B    e Zd ZdZdZdZdZdZ e            Z	d Z
d ZdS )	r   zA spider that follows all linksfollowi'     zhttp://localhost:8998c                     | j         | j        d}| j         dt          |d           }t	          j        |d          gS )N)r   show?T)doseq)dont_filter)r   r>   baseurlr   scrapyRequest)r   qargsurls      r   start_requestsz_BenchSpider.start_requests3   sM    *di88>>	%t < < <>>s55566r   c              #      K   | j                             |          D ]$}t          j        |j        | j                  V  %d S )N)callback)link_extractorextract_linksrC   rD   rF   parse)r   responselinks      r   rL   z_BenchSpider.parse8   sV      '55h?? 	@ 	@D.DJ???????	@ 	@r   N)r   r   r    __doc__namer   r>   rB   r   rJ   rG   rL   r   r   r   r   r   *   s\        ))DED%G"]__N7 7 7
@ @ @ @ @r   r   )r*   r(   r4   urllib.parser   rC   scrapy.commandsr   scrapy.linkextractorsr   r   r   Spiderr   r   r   r   <module>rU      s        



  " " " " " "  ) ) ) ) ) ) / / / / / /) ) ) ) )m ) ) )"       @ @ @ @ @6= @ @ @ @ @r   