func score(tag *goquery.Selection) int { src, _ := tag.Attr("src") if src == "" { src, _ = tag.Attr("data-src") } if src == "" { src, _ = tag.Attr("data-lazy-src") } if src == "" { return -1 } tagScore := 0 for rule, score := range rules { if rule.MatchString(src) { tagScore += score } } alt, exists := tag.Attr("alt") if exists { if strings.Contains(alt, "thumbnail") { tagScore-- } } id, exists := tag.Attr("id") if exists { if id == "fbPhotoImage" { tagScore++ } } return tagScore }
func (p Parser) name(selector string, selection *goquery.Selection) string { value, exists := selection.Attr(selector) if exists { return value } return "" }
func (ve *VideoExtractor) getSrc(node *goquery.Selection) string { value, exists := node.Attr("src") if exists { return value } return "" }
func (ve *VideoExtractor) getHeight(node *goquery.Selection) int { value, exists := node.Attr("height") if exists { nvalue, _ := strconv.Atoi(value) return nvalue } return 0 }
func (this *contentExtractor) getNodeGravityScore(node *goquery.Selection) int { grvScoreString, exists := node.Attr("gravityScore") if !exists { return 0 } grvScore, err := strconv.Atoi(grvScoreString) if err != nil { return 0 } return grvScore }
//stores how many decent nodes are under a parent node func (this *contentExtractor) updateNodeCount(node *goquery.Selection, addToCount int) { currentScore := 0 var err error scoreString, _ := node.Attr("gravityNodes") if scoreString != "" { currentScore, err = strconv.Atoi(scoreString) if err != nil { currentScore = 0 } } newScore := currentScore + addToCount this.config.parser.setAttr(node, "gravityNodes", strconv.Itoa(newScore)) }
//adds a score to the gravityScore Attribute we put on divs //we'll get the current score then add the score we're passing in to the current func (extr *ContentExtractor) updateScore(node *goquery.Selection, addToScore int) { currentScore := 0 var err error scoreString, _ := node.Attr("gravityScore") if scoreString != "" { currentScore, err = strconv.Atoi(scoreString) if err != nil { currentScore = 0 } } newScore := currentScore + addToScore extr.config.parser.setAttr(node, "gravityScore", strconv.Itoa(newScore)) }