
    !h	                        S SK Jr  S SKrS SKJrJr  S SKJrJrJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJr  \(       a  S S	KJr   " S
 S\5      rg)    )annotationsN)AsyncIteratorIterable)TYPE_CHECKINGAnycast)Request)ScrapyDeprecationWarning)Spider)iterate_spider_output)Responsec                  ^   ^  \ rS rSrSrU 4S jrS	S jrS
U 4S jjrSSS jjrSS jr	Sr
U =r$ )
InitSpider   zBase Spider with initialization facilities

.. warning:: This class is deprecated. Copy its code into your project if needed.
It will be removed in a future Scrapy version.
c                Z   > [         TU ]  " U0 UD6  [        R                  " S[        SS9  g )NzlInitSpider is deprecated. Copy its code from Scrapy's source if needed. Will be removed in a future version.   )
stacklevel)super__init__warningswarnr
   )selfargskwargs	__class__s      Z/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/spiders/init.pyr   InitSpider.__init__   s,    $)&)3$		
    c                  #    [         R                  " 5          [         R                  " S[        SS9  U R	                  5        H  nU7v   M
     S S S 5        g ! , (       d  f       g = f7f)Nignorez^scrapy\.spiders$)categorymodule)r   catch_warningsfilterwarningsr
   start_requests)r   item_or_requests     r   startInitSpider.start    sN     $$&###;DX $(#6#6#8%% $9	 '&&s   A)7A	A)
A&"A)c                   > [         TU ]  5       U l        [        [        [
           [        U R                  5       5      5      $ N)r   r%   _postinit_reqsr   r   r	   r   init_request)r   r   s    r   r%   InitSpider.start_requests(   s4    161G1IHW%'<T=N=N=P'QRRr   c                8    U R                   R                  S5      $ )z~This method must be set as the callback of your last initialization
request. See self.init_request() docstring for more info.
r+   )__dict__pop)r   responses     r   initializedInitSpider.initialized,   s     }}  !122r   c                "    U R                  5       $ )ag  This function should return one initialization request, with the
self.initialized method as callback. When the self.initialized method
is called this spider is considered initialized. If you need to perform
several requests for initializing your spider, you can do so by using
different callbacks. The only requirement is that the final callback
(of the last initialization request) must be self.initialized.

The default implementation calls self.initialized immediately, and
means that no initialization is needed. This method should be
overridden only when you need to perform requests to initialize your
spider
)r2   )r   s    r   r,   InitSpider.init_request2   s     !!r   )r+   )returnzAsyncIterator[Any])r6   zIterable[Request]r*   )r1   zResponse | Noner6   r   )r6   r   )__name__
__module____qualname____firstlineno____doc__r   r'   r%   r2   r,   __static_attributes____classcell__)r   s   @r   r   r      s'    
&S3" "r   r   )
__future__r   r   collections.abcr   r   typingr   r   r   scrapyr	   scrapy.exceptionsr
   scrapy.spidersr   scrapy.utils.spiderr   scrapy.httpr   r    r   r   <module>rG      s2    "  3 + +  6 ! 5$/" /"r   