docs: def view_torrent(self, torrent_id):
          """Retrieves and parses the torrent page for a given `torrent_id`.
  
          :param torrent_id: the ID of the torrent to view
          :raises TorrentNotFoundError: if the torrent does not exist
          :returns: a :class:`TorrentPage` with a snapshot view of the torrent
              detail page
          """
          params = {
              'page': 'view',
              'tid': torrent_id,
          }
          r = requests.get(self.base_url, params=params)
          content = self._get_page_content(r)
  
          # Check if the content div has any child elements
          if not len(content):
              # The "torrent not found" text in the page has some unicode junk
              # that we can safely ignore.
              text = str(content.text.encode('ascii', 'ignore'))
              if TORRENT_NOT_FOUND_TEXT in text:
                  raise TorrentNotFoundError(TORRENT_NOT_FOUND_TEXT)
  
          cell_td_elems = content.findall('.//td')
          name = cell_td_elems[3].text
  
          category_href = content\
              .findall(".//td[@class='viewcategory']/a[2]")[0]\
              .attrib['href']
          category_value = category_href.split('cats=')[1]
          category = Category.lookup_category(category_value)
  
          # parse the submitter details
          submitter_a_elem = cell_td_elems[7].findall('a')[0]
          submitter_id = submitter_a_elem.attrib['href'].split('=')[1]
          submitter_name = submitter_a_elem.findall('span')[0].text
          submitter = User(submitter_id, submitter_name)
  
          tracker = cell_td_elems[11].text
          date_created = datetime.datetime.strptime(
              cell_td_elems[5].text, '%Y-%m-%d, %H:%M %Z')
  
          seeders = int(content.findall(".//span[@class='viewsn']")[0].text)
          leechers = int(content.findall(".//span[@class='viewln']")[0].text)
          downloads = int(content.findall(".//span[@class='viewdn']")[0].text)
  
          file_size = cell_td_elems[21].text
  
          # note that the tree returned by html5lib might not exactly match the
          # original contents of the description div
          description = ElementTree.tostring(
              content.findall(".//div[@class='viewdescription']")[0],
              encoding='utf8', method='html')
          return TorrentPage(
              torrent_id, name, submitter, category, tracker, date_created,
              seeders, leechers, downloads, file_size, description)