code: func Find(node *html.Node, matcher Matcher) (n *html.Node, ok bool) {
  	if matcher(node) {
  		return node, true
  	}
  
  	for c := node.FirstChild; c != nil; c = c.NextSibling {
  		n, ok := Find(c, matcher)
  		if ok {
  			return n, true
  		}
  	}
  	return nil, false
  }
docs: // Find returns the first node which matches the matcher using depth-first search.
  // If no node is found, ok will be false.
  //
  //     root, err := html.Parse(resp.Body)
  //     if err != nil {
  //         // handle error
  //     }
  //     matcher := func(n *html.Node) bool {
  //         return n.DataAtom == atom.Body
  //     }
  //     body, ok := scrape.Find(root, matcher)