@staticmethod
def find_site_url(soup, url: str) ->str:
    """
        Attempts to find the canonical Url of the Site

        :param soup: BeautifulSoup of site
        :param url: Current Url of site
        :return: str
        """
    canonical = soup.find(name='link', rel='canonical')
    try:
        site = canonical.get('href')
        if site:
            return site
    except AttributeError:
        pass
    meta = soup.find(name='meta', property='og:url')
    try:
        site = meta.get('content')
    except AttributeError:
        return url
    return site
