MCPcopy
hub / github.com/scrapy/scrapy / _process_spider_input

Method _process_spider_input

scrapy/core/spidermw.py:75–98  ·  view source on GitHub ↗
(
        self,
        scrape_func: ScrapeFunc[_T],
        response: Response,
        request: Request,
    )

Source from the content-addressed store, hash-verified

73 self._check_mw_method_spider_arg(process_spider_exception)
74
75 async def _process_spider_input(
76 self,
77 scrape_func: ScrapeFunc[_T],
78 response: Response,
79 request: Request,
80 ) -> Iterable[_T] | AsyncIterator[_T]:
81 for method in self.methods["process_spider_input"]:
82 assert method is not None
83 try:
84 if method in self._mw_methods_requiring_spider:
85 result = method(response=response, spider=self._spider)
86 else:
87 result = method(response=response)
88 if result is not None:
89 msg = (
90 f"{global_object_name(method)} must return None "
91 f"or raise an exception, got {type(result)}"
92 )
93 raise _InvalidOutput(msg)
94 except _InvalidOutput:
95 raise
96 except Exception:
97 return await scrape_func(Failure(), request)
98 return await scrape_func(response, request)
99
100 async def _evaluate_iterable(
101 self,

Callers 1

scrape_response_asyncMethod · 0.95

Calls 2

global_object_nameFunction · 0.90
_InvalidOutputClass · 0.90

Tested by

no test coverage detected