docs: def search(self, search_term, column="title", number_results=25):
          """
          TODO:
          Add documentation
          DONE -> Search multiple pages untile the number_results is meet or the end.
          Check for strange encodings, other langauges chinese,etc..
          Simplify,simplify,simply...For exemple the book dictionary
          should start with all keys with an empty string.
          Change the actual output to json?
          Make a example terminal app that uses it
          STARTED -> Add parameters to the search apart from the search_term
          """
          request={"req":search_term,"column":column}
          self.__choose_mirror()
          if sys.version_info[0] < 3:
              url = self.__selected_mirror+"/search.php?"+ \
                      urllib.urlencode(request)
          else:
              url = self.__selected_mirror+"/search.php?"+ \
                      urllib.parse.urlencode(request)
          self.grabber.go(url)
          search_result = []
          nbooks = re.search(r'([0-9]*) (books|files)',
                             self.grabber.doc.select(
                                 "/html/body/table[2]/tr/td[1]/font").text())
          nbooks = int(nbooks.group(1))
          pages_to_load = int(math.ceil(number_results/25.0)) # Pages needed to be loaded
          # Check if the pages needed to be loaded are more than the pages available
          if pages_to_load > int(math.ceil(nbooks/25.0)):
              pages_to_load = int(math.ceil(nbooks/25.0))
          for page in range(1, pages_to_load+1):
              if len(search_result) > number_results:  # Check if we got all the results
                  break
              url = ""
              request.update({"page":page})
              if sys.version_info[0] < 3:
                  url = self.__selected_mirror+"/search.php?"+ \
                        urllib.urlencode(request)
              else:
                  url = self.__selected_mirror+"/search.php?"+ \
                        urllib.parse.urlencode(request)
              self.grabber.go(url)
              search_result += self.__parse_books()
              if page != pages_to_load:
                  # Random delay because if you ask a lot of pages,your ip might get blocked.
                  time.sleep(random.randint(250, 1000)/1000.0)
          return search_result[:number_results]