(
self, spider: Spider, request: Request, opts: argparse.Namespace
)
| 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) |
no test coverage detected