def _get_online_chapter(self, book_name, book_chapter,
        cache_chapter):
        """
        Retrieves an entire chapter of a book in the Bible in the form of a
        list.
        If cache_chapter is "True", this method will cache the chapter
        in "~/.diyr/bible/<book>/<chapter>.txt".
        """
        url = self.build_recovery_online_url(book_name, book_chapter)
        logging.debug("Looking up chapter at URL: {}".format(url))
        r = requests.get(url)
        if r.status_code != 200:
            logging.error("Could not look up {} {} at URL {}".format(
                book_name,
                book_chapter,
                url))
            raise Exception("Could not look up {} {} at URL {}".format(
                book_name,
                book_chapter,
                url))
        chapter_html = r.text
        soup = BeautifulSoup(chapter_html, 'html.parser')
        verses_list_soup = soup.get_text().split('\n')
        # Clean up verses list. This is being done because some
        # non-alphanumeric ASCII characters might have been picked up from the
        # web scraper
        verses_list = []
        verse_num = 1
        for verse in verses_list_soup:
            verse = self._remove_non_ascii(verse)
            if re.search(r'[0-9]+:[0-9]+', verse):
                verses_list.append(
                    re.sub(r'[0-9]+:[0-9]+',
                           str(verse_num) + ".",
                           verse))
                verse_num += 1

        logging.debug("Successfully built list for {} chapter {}".format(
            book_name,
            book_chapter))

        # If cache_chapter is True, then write it to disk
        if cache_chapter:
            base_dir = os.path.expanduser("~/.diyr")
            book_dir = "{}/{}".format(base_dir, book_name)
            chapter_file = "{}/{}".format(book_dir, book_chapter)
            # Ensure ~/.diyr/ directory exists
            if not os.path.isdir(base_dir):
                os.mkdir(base_dir)
            # Ensure the chapter directory exists
            if not os.path.isdir(book_dir):
                os.mkdir(book_dir)
            # If the file doesn't already exists, then write to it the
            # contents of the chapter
            if not os.path.isfile(chapter_file):
                f = open(chapter_file, 'w')
                f.write("\n".join(verses_list))
                f.close()

        return verses_list