| 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: |