Documentation ¶
Index ¶
- Variables
- func GetDirectChildren(node *html.Node) []*html.Node
- type HtmlTree
- func (t *HtmlTree) ExtractContentFromDocument(matchFun slext.PredicateFilter[*html.Node]) *html.Node
- func (t *HtmlTree) ExtractNodes(criterias ...slext.PredicateFilter[*html.Node]) []*html.Node
- func (t *HtmlTree) ExtractSpecificNode(matchFun slext.PredicateFilter[*html.Node]) []*html.Node
- func (t *HtmlTree) MatchNodes(matchFun slext.PredicateFilter[*html.Node]) []*html.Node
- type SearchCriteria
Constants ¶
This section is empty.
Variables ¶
var ( // GetChildrenFunc is a function that returns the children of an HTML node. GetChildrenFunc tlt.NextsFunc[*html.Node] = func(elem *html.Node, info uc.Objecter) ([]*html.Node, error) { if elem == nil { return nil, ers.NewErrNilValue() } children := make([]*html.Node, 0) for c := elem.FirstChild; c != nil; c = c.NextSibling { children = append(children, c) } return children, nil } )
var IsTextNodeSearch slext.PredicateFilter[*html.Node] = NewSearchCriteria(html.TextNode).Build()
IsTextNodeSearch is a search criteria that matches text nodes.
Functions ¶
Types ¶
type HtmlTree ¶
type HtmlTree struct {
// contains filtered or unexported fields
}
HtmlTree is a struct that represents an HTML tree.
func NewHtmlTree ¶
NewHtmlTree constructs a tree from an HTML node.
Parameters:
- root: The root HTML node.
Returns:
- *HtmlTree: The tree constructed from the HTML node.
- error: An error if the tree construction fails.
Errors:
- *ers.ErrNilValue: If any html.Node is nil.
func (*HtmlTree) ExtractContentFromDocument ¶
func (t *HtmlTree) ExtractContentFromDocument(matchFun slext.PredicateFilter[*html.Node]) *html.Node
ExtractContentFromDocument performs a depth-first search on an HTML document, finding the first node that matches the provided search criteria.
Parameters:
- matchFun: The search criteria to apply to each node.
Returns:
- *html.Node: The first node that matches the search criteria, nil if no matching node is found.
func (*HtmlTree) ExtractNodes ¶
ExtractNodes performs a breadth-first search on an HTML section returning a slice of nodes that match the provided search criteria.
Parameters:
- criterias: A list of search criteria to apply to each node.
Returns:
- []*html.Node: A slice containing all nodes that match the search criteria.
Behavior:
- If no criteria is provided, then any node will match.
func (*HtmlTree) ExtractSpecificNode ¶
ExtractSpecificNode finds all nodes that match the given search criteria and that are direct children of the provided node.
Parameters:
- criteria: The search criteria to apply to each node.
Returns:
- nodes: A slice containing all nodes that match the search criteria.
Behavior:
- If no criteria is provided, then any node will match.
- If the node is nil, then a nil slice is returned.
func (*HtmlTree) MatchNodes ¶
MatchNodes performs a breadth-first search on an HTML section returning a slice of nodes that match the provided search criteria.
Parameters:
- matchFun: The search criteria to apply to each node.
Returns:
- []*html.Node: A slice containing all nodes that match the search criteria.
Behavior:
- It does not search the children of the nodes that match the criteria.
- If no criteria is provided, then the first node will match.
type SearchCriteria ¶
type SearchCriteria struct { // NodeType specifies the type of the HTML node to search for. NodeType html.NodeType // Data represents the data contained within the node. Data *string // Attrs is a slice of attribute key-value pairs to match. Attrs []*cdp.Pair[string, slext.PredicateFilter[string]] }
SearchCriteria is a struct that encapsulates the parameters for searching within an HTML node.
func NewSearchCriteria ¶
func NewSearchCriteria(node_type html.NodeType) *SearchCriteria
NewSearchCriteria constructs a new SearchCriteria instance using the provided parameters.
Parameters:
- node_type: The type of the HTML node to search for.
Returns:
- *SearchCriteria: A new SearchCriteria instance.
func (*SearchCriteria) AppendAttr ¶
func (sc *SearchCriteria) AppendAttr(key string, val slext.PredicateFilter[string]) *SearchCriteria
AppendAttr is a method of the SearchCriteria type that appends an attribute key-value pair to the SearchCriteria instance.
Parameters:
- key: The attribute key to match.
- val: The attribute value to match.
Returns:
- *SearchCriteria: The SearchCriteria instance with the attribute key-value pair appended.
func (*SearchCriteria) Build ¶
func (sc *SearchCriteria) Build() slext.PredicateFilter[*html.Node]
Build is a method of the SearchCriteria type that constructs a slext.PredicateFilter function using the search criteria.
Returns:
- slext.PredicateFilter: A function that matches the search criteria.
func (*SearchCriteria) SetData ¶
func (sc *SearchCriteria) SetData(data string) *SearchCriteria
SetData sets the data field of the SearchCriteria instance.
Parameters:
- data: The data to set in the SearchCriteria instance.
Returns:
- *SearchCriteria: The SearchCriteria instance with the data field set.