feat: replace raw_response property with smart content detection
This commit is contained in:
@@ -115,7 +115,10 @@ class ResponseFactory:
|
|||||||
|
|
||||||
history = cls._process_response_history(first_response, parser_arguments)
|
history = cls._process_response_history(first_response, parser_arguments)
|
||||||
try:
|
try:
|
||||||
page_content = cls._get_page_content(page)
|
if "html" in final_response.headers.get("content-type", ""):
|
||||||
|
page_content = cls._get_page_content(page)
|
||||||
|
else:
|
||||||
|
page_content = final_response.text()
|
||||||
except Exception as e: # pragma: no cover
|
except Exception as e: # pragma: no cover
|
||||||
log.error(f"Error getting page content: {e}")
|
log.error(f"Error getting page content: {e}")
|
||||||
page_content = ""
|
page_content = ""
|
||||||
@@ -124,7 +127,6 @@ class ResponseFactory:
|
|||||||
**{
|
**{
|
||||||
"url": page.url,
|
"url": page.url,
|
||||||
"content": page_content,
|
"content": page_content,
|
||||||
"raw_response": final_response.text(),
|
|
||||||
"status": final_response.status,
|
"status": final_response.status,
|
||||||
"reason": status_text,
|
"reason": status_text,
|
||||||
"encoding": encoding,
|
"encoding": encoding,
|
||||||
@@ -248,7 +250,10 @@ class ResponseFactory:
|
|||||||
|
|
||||||
history = await cls._async_process_response_history(first_response, parser_arguments)
|
history = await cls._async_process_response_history(first_response, parser_arguments)
|
||||||
try:
|
try:
|
||||||
page_content = await cls._get_async_page_content(page)
|
if "html" in final_response.headers.get("content-type", ""):
|
||||||
|
page_content = await cls._get_async_page_content(page)
|
||||||
|
else:
|
||||||
|
page_content = await final_response.text()
|
||||||
except Exception as e: # pragma: no cover
|
except Exception as e: # pragma: no cover
|
||||||
log.error(f"Error getting page content in async: {e}")
|
log.error(f"Error getting page content in async: {e}")
|
||||||
page_content = ""
|
page_content = ""
|
||||||
@@ -258,7 +263,6 @@ class ResponseFactory:
|
|||||||
"url": page.url,
|
"url": page.url,
|
||||||
"content": page_content,
|
"content": page_content,
|
||||||
"status": final_response.status,
|
"status": final_response.status,
|
||||||
"raw_response": await final_response.text(),
|
|
||||||
"reason": status_text,
|
"reason": status_text,
|
||||||
"encoding": encoding,
|
"encoding": encoding,
|
||||||
"cookies": tuple(dict(cookie) for cookie in await page.context.cookies()),
|
"cookies": tuple(dict(cookie) for cookie in await page.context.cookies()),
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ class Response(Selector):
|
|||||||
request_headers: Dict,
|
request_headers: Dict,
|
||||||
encoding: str = "utf-8",
|
encoding: str = "utf-8",
|
||||||
method: str = "GET",
|
method: str = "GET",
|
||||||
raw_response: str | bytes = "",
|
|
||||||
history: List | None = None,
|
history: List | None = None,
|
||||||
**selector_config: Any,
|
**selector_config: Any,
|
||||||
):
|
):
|
||||||
@@ -40,7 +39,6 @@ class Response(Selector):
|
|||||||
self.reason = reason
|
self.reason = reason
|
||||||
self.cookies = cookies
|
self.cookies = cookies
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
self.raw_response = raw_response or content
|
|
||||||
self.request_headers = request_headers
|
self.request_headers = request_headers
|
||||||
self.history = history or []
|
self.history = history or []
|
||||||
super().__init__(
|
super().__init__(
|
||||||
|
|||||||
Reference in New Issue
Block a user