docs: def query(searchstr, outformat=FORMAT_BIBTEX, allresults=False):
      """Query google scholar.
  
      This method queries google scholar and returns a list of citations.
  
      Parameters
      ----------
      searchstr : str
          the query
      outformat : int, optional
          the output format of the citations. Default is bibtex.
      allresults : bool, optional
          return all results or only the first (i.e. best one)
  
      Returns
      -------
      result : list of strings
          the list with citations
  
      """
      logger.debug("Query: {sstring}".format(sstring=searchstr))
      searchstr = '/scholar?q='+quote(searchstr)
      url = GOOGLE_SCHOLAR_URL + searchstr
      header = HEADERS
      header['Cookie'] = "GSP=CF=%d" % outformat
      request = Request(url, headers=header)
      response = urlopen(request)
      html = response.read()
      html = html.decode('utf8')
      # grab the links
      tmp = get_links(html, outformat)
  
      # follow the bibtex links to get the bibtex entries
      result = list()
      if not allresults:
          tmp = tmp[:1]
      for link in tmp:
          url = GOOGLE_SCHOLAR_URL+link
          request = Request(url, headers=header)
          response = urlopen(request)
          bib = response.read()
          bib = bib.decode('utf8')
          result.append(bib)
      return result