feat: Make .body return the passed content as it is without any processing
This makes it possible to download files and deal with non-HTML requests (ex: #81 )
This commit is contained in:
+6
-4
@@ -132,8 +132,7 @@ class Selector(SelectorsGeneration):
|
|||||||
strip_cdata=(not keep_cdata),
|
strip_cdata=(not keep_cdata),
|
||||||
)
|
)
|
||||||
self._root = fromstring(body, parser=parser, base_url=url)
|
self._root = fromstring(body, parser=parser, base_url=url)
|
||||||
|
self._raw_body = content
|
||||||
self._raw_body = body.decode()
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# All HTML types inherit from HtmlMixin so this to check for all at once
|
# All HTML types inherit from HtmlMixin so this to check for all at once
|
||||||
@@ -342,7 +341,10 @@ class Selector(SelectorsGeneration):
|
|||||||
"""Return the inner HTML code of the element"""
|
"""Return the inner HTML code of the element"""
|
||||||
return TextHandler(tostring(self._root, encoding=self.encoding, method="html", with_tail=False))
|
return TextHandler(tostring(self._root, encoding=self.encoding, method="html", with_tail=False))
|
||||||
|
|
||||||
body = html_content
|
@property
|
||||||
|
def body(self):
|
||||||
|
"""Return the raw body of the current `Selector` without any processing. Useful for binary and non-HTML requests."""
|
||||||
|
return self._raw_body
|
||||||
|
|
||||||
def prettify(self) -> TextHandler:
|
def prettify(self) -> TextHandler:
|
||||||
"""Return a prettified version of the element's inner html-code"""
|
"""Return a prettified version of the element's inner html-code"""
|
||||||
@@ -934,7 +936,7 @@ class Selector(SelectorsGeneration):
|
|||||||
# Operations on text functions
|
# Operations on text functions
|
||||||
def json(self) -> Dict:
|
def json(self) -> Dict:
|
||||||
"""Return JSON response if the response is jsonable otherwise throws error"""
|
"""Return JSON response if the response is jsonable otherwise throws error"""
|
||||||
if self._raw_body:
|
if self._raw_body and isinstance(self._raw_body, str):
|
||||||
return TextHandler(self._raw_body).json()
|
return TextHandler(self._raw_body).json()
|
||||||
elif self.text:
|
elif self.text:
|
||||||
return self.text.json()
|
return self.text.json()
|
||||||
|
|||||||
Reference in New Issue
Block a user