MCPcopy
hub / github.com/scrapy/scrapy / retrieve_response

Method retrieve_response

scrapy/extensions/httpcache.py:335–349  ·  view source on GitHub ↗

Return response if present in cache, or None otherwise.

(self, spider: Spider, request: Request)

Source from the content-addressed store, hash-verified

333 pass
334
335 def retrieve_response(self, spider: Spider, request: Request) -> Response | None:
336 """Return response if present in cache, or None otherwise."""
337 metadata = self._read_meta(spider, request)
338 if metadata is None:
339 return None # not cached
340 rpath = Path(self._get_request_path(spider, request))
341 with self._open(rpath / "response_body", "rb") as f:
342 body = f.read()
343 with self._open(rpath / "response_headers", "rb") as f:
344 rawheaders = f.read()
345 url = metadata["response_url"]
346 status = metadata["status"]
347 headers = Headers(headers_raw_to_dict(rawheaders))
348 respcls = responsetypes.from_args(headers=headers, url=url, body=body)
349 return respcls(url=url, headers=headers, status=status, body=body)
350
351 def store_response(
352 self, spider: Spider, request: Request, response: Response

Callers

nothing calls this directly

Calls 5

_read_metaMethod · 0.95
_get_request_pathMethod · 0.95
HeadersClass · 0.90
readMethod · 0.80
from_argsMethod · 0.80

Tested by

no test coverage detected