MCPcopy
hub / github.com/scrapy/scrapy / prepare_request

Method prepare_request

scrapy/commands/parse.py:340–372  ·  view source on GitHub ↗
(
        self, spider: Spider, request: Request, opts: argparse.Namespace
    )

Source from the content-addressed store, hash-verified

338 return cb
339
340 def prepare_request(
341 self, spider: Spider, request: Request, opts: argparse.Namespace
342 ) -> Request:
343 def callback(response: Response, **cb_kwargs: Any) -> Deferred[list[Any]]:
344 # memorize first request
345 if not self.first_response:
346 self.first_response = response
347
348 cb = self._get_callback(spider=spider, opts=opts, response=response)
349
350 # parse items and requests
351 depth: int = response.meta["_depth"]
352
353 d = self.run_callback(response, cb, cb_kwargs)
354 d.addCallback(self._get_items_and_requests, opts, depth, spider, callback)
355 d.addCallback(self.scraped_data)
356 return d
357
358 # update request meta if any extra meta was passed through the --meta/-m opts.
359 if opts.meta:
360 request.meta.update(opts.meta)
361
362 # update cb_kwargs if any extra values were was passed through the --cbkwargs option.
363 if opts.cbkwargs:
364 request.cb_kwargs.update(opts.cbkwargs)
365
366 request.meta["_depth"] = 1
367 request.meta["_callback"] = request.callback
368 if not request.callback and not opts.rules:
369 cb = self._get_callback(spider=spider, opts=opts)
370 functools.update_wrapper(callback, cb)
371 request.callback = callback
372 return request
373
374 def process_options(self, args: list[str], opts: argparse.Namespace) -> None:
375 super().process_options(args, opts)

Callers 1

startMethod · 0.95

Calls 2

_get_callbackMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected