@staticmethod
def find_site_name(soup) ->str:
    """
        Attempts to find Site Name

        :param soup: BeautifulSoup of site
        :return: str
        """
    site_name_meta = ['og:site_name', 'og:title', 'application:name',
        'twitter:app:name:iphone']
    for p in site_name_meta:
        try:
            name = soup.find(name='meta', property=p).get('content')
            if name:
                return name
        except AttributeError:
            pass
    try:
        title = soup.find(name='title').text
        if title:
            return title
    except AttributeError:
        pass
    return ''
