blob: 1fe5ea4fab2c2e135993e54e724108fa700c7130 (
plain) (
tree)
|
|
package scrape
import (
"strings"
"github.com/PuerkitoBio/goquery"
)
var emptyDoc, _ = goquery.NewDocumentFromReader(strings.NewReader(""))
func Doc(html string) *goquery.Selection {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))
if err != nil {
return emptyDoc.Selection
}
return doc.Selection
}
func Query(s *goquery.Selection, selector string) string {
val := s.Find(selector).First().Text()
return strings.TrimSpace(val)
}
func QueryAttr(s *goquery.Selection, selector, attr string) string {
val := s.Find(selector).First().AttrOr(attr, "")
return strings.TrimSpace(val)
}
func QueryHTML(s *goquery.Selection, selector string) string {
val, err := goquery.OuterHtml(s.Find(selector))
if err != nil {
return ""
}
return strings.TrimSpace(val)
}
func QueryFunc(s *goquery.Selection, selector string, f func(*goquery.Selection)) {
s.Find(selector).Each(func(i int, s *goquery.Selection) {
f(s)
})
}
|