Same as urllib2.urlopen or urllib.request.urlopen,
        the only difference is that it links to the internal opener.

def urlopen(self, url, data=None, *args, **kwargs):
        """
        Same as urllib2.urlopen or urllib.request.urlopen,
        the only difference is that it links to the internal opener.
        """
        logger.info('opening: \'%s\'', url)

        if data is None:
            return self.opener.open(url)

        return self.opener.open(url, data)