from ..darkobject import DarkObject
from bs4 import BeautifulSoup
import requests
import logging
import time


class Scrubber(DarkObject):
    def __init__(self):
        super(Scrubber, self).__init__()

    def scrub(self):
        """
        Get item metadata.
        """
        return {}

    # noinspection PyBroadException
    @staticmethod
    def soup(url, absolute: bool = False, **kwargs):
        """
        Open URL and create tag soup.

        :param url: website string
        :type url: str

        :param absolute: perform double get request to find absolute url
        :type absolute: bool
        """
        handle = ''
        max_tries = 10
        for i in range(max_tries):
            # noinspection PyPep8
            try:
                if absolute:
                    url = requests.get(url).url
                handle = requests.get(url, params=kwargs).text
                break
            except Exception:
                logging.exception('urlopen failed (attempt %d)', i + 1)
                if i == max_tries - 1:
                    logging.error('the maximum urlopen attempts have been reached')
                    raise
                time.sleep(1)

        s = BeautifulSoup(handle, features='html5lib')
        return s


if __name__ == '__main__':
    pass

@@ -102,16 +102,27 @@
 rt time%0A
+import bs4%0A
 %0A%0Aclass 
@@ -1204,16 +1204,33 @@
 eep(1)%0A%0A
+        try:%0A    
         
@@ -1276,16 +1276,115 @@
 l5lib')%0A
+        except bs4.FeatureNotFound:%0A            s = BeautifulSoup(handle, features='html.parser')%0A%0A
         

Add try accept block for bs4 features