report.go 675 B

123456789101112131415161718192021222324252627282930313233
  1. package services
  2. import (
  3. "fmt"
  4. "github.com/PuerkitoBio/goquery"
  5. "html"
  6. "strings"
  7. )
  8. func GetReportContentSub(content string) (contentSub string, err error) {
  9. content = html.UnescapeString(content)
  10. doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
  11. if err != nil {
  12. fmt.Println("create doc err:", err.Error())
  13. return
  14. }
  15. n := 0
  16. doc.Find("p").Each(func(i int, s *goquery.Selection) {
  17. if n >= 5 {
  18. return
  19. }
  20. n++
  21. phtml, err := s.Html()
  22. if err != nil {
  23. fmt.Println("get html err", err.Error())
  24. return
  25. }
  26. if s.Text() != "" || strings.Contains(phtml, "src") {
  27. contentSub = contentSub + "<p>" + phtml + "</p>"
  28. }
  29. })
  30. return
  31. }