<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_html(url, headers=None, timeout=None, errors="strict", wait_time=None, driver=None, zillow_only=False, cache_only=False, zillow_first=False, cache_first=False, random=False, **kwargs):
 """ Use Google Cached Url. :param cache_only: if True, then real zillow site will never be used. :param driver: selenium browser driver。 """

    if wait_time is None:
        wait_time = Config.Crawler.wait_time

    # prepare url
    cache_url1 = prefix + url + "/"
    cache_url2 = prefix + url
    zillow_url = url

    only_flags = [zillow_only, cache_only]
    if sum(only_flags) == 0:
        first_flags = [zillow_first, cache_first]
        if sum(first_flags) == 0:
            if random:
                if randint(0, 1):
                    all_url = [zillow_url, cache_url1, cache_url2]
                else:
                    all_url = [cache_url1, cache_url2, zillow_url]
            else:
                all_url = [zillow_url, cache_url1, cache_url2]
        elif sum(first_flags) == 1:
            if zillow_first:
                all_url = [zillow_url, cache_url1, cache_url2]
            elif cache_first:
                all_url = [cache_url1, cache_url2, zillow_url]
        else:
            raise ValueError(
                "Only zero or one `xxx_first` argument could be `True`!")

    elif sum(only_flags) == 1:
        if zillow_only:
            all_url = [zillow_url, ]
        elif cache_only:
            all_url = [cache_url1, cache_url2]

    else:
        raise ValueError(
            "Only zero or one `xxx_only` argument could be `True`!")

    for url in all_url:
        try:
            html = _get_html(url, headers, timeout, errors,
                             wait_time, driver, **kwargs)
            return html
        except Exception as e:
            pass
    raise e