code: def soup(self, *args, **kwargs):
          
          if self._url is None:
              raise NoWebsiteLoadedError('website parsing requires a loaded website')
  
          content_type = self._response.headers.get('Content-Type', '')
          if not any(markup in content_type for markup in ('html', 'xml')):
              raise ParsingError('unsupported content type \'{}\''.format(content_type))
  
          strainer = SoupStrainer(*args, **kwargs)
          return BeautifulSoup(self._response.content, self.parser, parse_only=strainer)
docs: Parse the currently loaded website.
  
          Optionally, SoupStrainer can be used to only parse relevant
          parts of the page. This can be particularly useful if the website is
          complex or perfomance is a factor.
          <https://www.crummy.com/software/BeautifulSoup/bs4/doc/#soupstrainer>
  
          Args:
              *args: Optional positional arguments that `SoupStrainer` takes.
              **kwargs: Optional keyword argument that `SoupStrainer` takes.
  
          Returns:
              A `BeautifulSoup` object.
  
          Raises:
              NoWebsiteLoadedError: If no website is currently loaded.
              ParsingError: If the current response isn't supported by `bs4`