func Find(node *html.Node, mf MatchFunc) (n *html.Node, ok bool) {
	if mf(node) {
		return node, true
	}
	for c := node.FirstChild; c != nil; c = c.NextSibling {
		n, ok := Find(c, mf)
		if ok {
			return n, true
		}
	}
	return nil, false
}
Find returns the first node which matches the MatchFunc using depth-first search.
If no node is found, ok will be false.

root, err := html.Parse(resp.Body)
if err != nil {
// handle error
}
mf := func(n *html.Node) bool {
return n.DataAtom == atom.Body
}
body, ok := scrape.Find(root, mf)
package htmls
import (
	"strings"
	"golang.org/x/net/html"
	"golang.org/x/net/html/atom"
)
type MatchFunc func(*html.Node) bool
func MatchAtom(a atom.Atom) MatchFunc {
	return func(n *html.Node) bool {
		return n.DataAtom == a
	}
}
func FindAll(node *html.Node, mf MatchFunc) []*html.Node {
	return findAllInternal(node, mf, false)
}
func FindAllNested(node *html.Node, mf MatchFunc) []*html.Node {
	return findAllInternal(node, mf, true)
}