docs: def _process_book(link):
      """
      Download and parse available informations about book from the publishers
      webpages.
  
      Args:
          link (str): URL of the book at the publishers webpages.
  
      Returns:
          obj: :class:`.Publication` instance with book details.
      """
      # download and parse book info
      data = DOWNER.download(link)
      dom = dhtmlparser.parseString(
          utils.handle_encodnig(data)
      )
      dhtmlparser.makeDoubleLinked(dom)
  
      # some books are without price in expected elements, this will try to get
      # it from elsewhere
      price = None
      try:
          price = _strip_content(zapi.get_price(dom))
      except UserWarning:
          price = dom.find("p", {"class": "vaseCena"})
  
          if price:
              price = price[0].getContent().replace("&nbsp;", " ")
              price = filter(lambda x: x.isdigit(), price.strip())
  
              if price:
                  price = price[0] + "kč"
              else:
                  price = "-1"
          else:
              price = "-1"
  
      # required informations
      pub = Publication(
          title=_strip_content(zapi.get_title(dom)),
          authors=_parse_authors(zapi.get_author(dom)),
          price=price,
          publisher=_strip_content(zapi.get_publisher(dom))
      )
  
      # optional informations
      pub.optionals.URL = link
      pub.optionals.pages = _strip_content(zapi.get_pages(dom))
      pub.optionals.pub_date = _strip_content(zapi.get_pub_date(dom))
      pub.optionals.ISBN = _strip_content(zapi.get_ISBN(dom))
      pub.optionals.binding = _strip_content(zapi.get_binding(dom))
  
      # post checks
      if pub.title.startswith("E-kniha:"):
          pub.title = pub.title.replace("E-kniha:", "", 1).strip()
          pub.optionals.is_ebook = True
  
      if pub.optionals.ISBN:
          if " " in pub.optionals.ISBN:
              pub.optionals.ISBN = pub.optionals.ISBN.split(" ")[0]
  
          if "(" in pub.optionals.ISBN:
              pub.optionals.ISBN = pub.optionals.ISBN.split("(")[0]
  
      return pub