def split_html(html_string):
    """
    Divides an html document into three seperate strings and returns
    each of these. The first part is everything up to and including the
    <body> tag. The next is everything inside of the body tags. The
    third is everything outside of and including the </body> tag.

    :type html_string: string
    :param html_string: html document in string form
    :returns: three strings start, body, and ending
    """

    try:
        i = html_string.index("<body")
        j = html_string.index(">", i) + 1
        k = html_string.index("</body")
    except ValueError:
        raise Exception("This is not a full html document.")
    start = html_string[:j]
    body = html_string[j:k]
    ending = html_string[k:]
    return start, body, ending