Files
scraper/match.go

39 lines
665 B
Go

package scraper
import (
"errors"
"slices"
"strings"
"golang.org/x/net/html"
"golang.org/x/net/html/atom"
)
var body = &html.Node{
Type: html.ElementNode,
Data: "body",
DataAtom: atom.Body,
}
var ErrNotAnElementNode = errors.New("not an ElementNode")
func MatchElemAttr(s string, n2 *html.Node) (bool, error) {
r := strings.NewReader(s)
n, err := html.ParseFragment(r, body)
if err != nil {
return false, err
}
n1 := n[0]
if !(n1.Type == html.ElementNode &&
n2.Type == html.ElementNode) {
return false, ErrNotAnElementNode
}
if n1.Data == n2.Data &&
slices.Equal(n1.Attr, n2.Attr) {
return true, nil
}
return false, nil
}