def METHOD_NAME(self):
    self.get_csrf()
    url = self.novel_url
    if "_" not in url:
        ids = re.findall(r"/book/(\d+)", url)
        assert ids, "Please enter a correct novel URL"
        self.novel_id = ids[0]
    else:
        self.novel_id = url.split("_")[1]
    logger.info("Novel Id: %s", self.novel_id)
    response = self.get_response(
        f"{self.home_url}go/pcm/chapter/getContent"
        + f"?_csrfToken={self.csrf}&bookId={self.novel_id}&chapterId=0"
        + "&encryptType=3&_fsae=0"
    )
    data = response.json()
    logger.debug("Book Response:\n%s", data)
    assert "data" in data, "Data not found"
    data = data["data"]
    assert "bookInfo" in data, "Book info not found"
    book_info = data["bookInfo"]
    assert "bookName" in book_info, "Book name not found"
    self.novel_title = book_info["bookName"]
    self.novel_cover = (
        f"{self.origin.scheme}://img.webnovel.com/bookcover/{self.novel_id}/600/600.jpg"
        + f"?coverUpdateTime{int(1000 * time())}&imageMogr2/quality/40"
    )
    if "authorName" in book_info:
        self.novel_author = book_info["authorName"]
    elif "authorItems" in book_info:
        self.novel_author = ", ".join(
            [x.get("name") for x in book_info["authorItems"] if x.get("name")]
        )
    # To get the chapter list catalog
    soup = self.get_soup(f"{self.novel_url.strip('/')}/catalog")
    self.parse_chapter_catalog(soup)
    if not self.chapters:
        raise FallbackToBrowser()