MCPcopy
hub / github.com/scrapy/scrapy / set_spidercls

Method set_spidercls

scrapy/commands/parse.py:245–264  ·  view source on GitHub ↗
(self, url: str, opts: argparse.Namespace)

Source from the content-addressed store, hash-verified

243 return None
244
245 def set_spidercls(self, url: str, opts: argparse.Namespace) -> None:
246 assert self.crawler_process
247 spider_loader = self.crawler_process.spider_loader
248 if opts.spider:
249 try:
250 self.spidercls = spider_loader.load(opts.spider)
251 except KeyError:
252 logger.error(
253 "Unable to find spider: %(spider)s", {"spider": opts.spider}
254 )
255 else:
256 self.spidercls = spidercls_for_request(spider_loader, Request(url))
257 if not self.spidercls:
258 logger.error("Unable to find spider for: %(url)s", {"url": url})
259
260 async def start(spider: Spider) -> AsyncIterator[Any]:
261 yield self.prepare_request(spider, Request(url), opts)
262
263 if self.spidercls:
264 self.spidercls.start = start # type: ignore[assignment,method-assign]
265
266 def start_parsing(self, url: str, opts: argparse.Namespace) -> None:
267 assert self.crawler_process

Callers 1

runMethod · 0.95

Calls 4

spidercls_for_requestFunction · 0.90
RequestClass · 0.90
errorMethod · 0.80
loadMethod · 0.45

Tested by

no test coverage detected