本文整理汇总了Golang中github.com/PuerkitoBio/goquery.Selection.Text方法的典型用法代码示例。如果您正苦于以下问题:Golang Selection.Text方法的具体用法?Golang Selection.Text怎么用?Golang Selection.Text使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/PuerkitoBio/goquery.Selection
的用法示例。
在下文中一共展示了Selection.Text方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: processLink
// Add street to result and find street information (to WikipediaMoscow.result)
func (parser *WikipediaMoscow) processLink(_ int, s *goquery.Selection, done chan<- *StreetInfo) {
name := strings.TrimSpace(s.Text())
if len(name) == 0 {
done <- parser.getEmptyInfo("")
return
}
href, exists := s.Attr("href")
if !exists {
done <- parser.getEmptyInfo("")
return
}
var (
class string
info *StreetInfo
)
class, exists = s.Attr("class")
if exists && class == "new" {
info = parser.getEmptyInfo(name)
} else if resp, err := http.Get(parser.baseURL + href); err != nil {
info = parser.getEmptyInfo(name)
} else {
streetparser := NewWikipediaStreetParser()
info, err = streetparser.ParseStreetInfo(name, resp.Body)
if err != nil {
info = parser.getEmptyInfo(name)
}
}
done <- info
}
示例2: node
// node returns a string representation of the selection.
func node(i int, s *goquery.Selection) string {
switch node := s.Get(0); {
case node.Data == "h1":
return fmt.Sprintf(" \033[%dm# %s\033[0m\n\n", blue, text(s))
case node.Data == "h2":
return fmt.Sprintf(" \033[%dm## %s\033[0m\n\n", blue, text(s))
case node.Data == "h3":
return fmt.Sprintf(" \033[%dm### %s\033[0m\n\n", blue, text(s))
case node.Data == "p":
return fmt.Sprintf("\033[%dm%s\033[0m\n\n", none, indent(text(s), 1))
case node.Data == "pre" || s.HasClass("highlight"):
return fmt.Sprintf("\033[1m%s\033[0m\n\n", indent(text(s), 2))
case node.Data == "a":
return fmt.Sprintf("%s (%s) ", s.Text(), s.AttrOr("href", "missing link"))
case node.Data == "li":
return fmt.Sprintf(" • %s\n", contents(s))
case node.Data == "ul":
return fmt.Sprintf("%s\n", nodes(s))
case node.Data == "code":
return fmt.Sprintf("\033[1m%s\033[0m ", s.Text())
case node.Type == html.TextNode:
return strings.TrimSpace(node.Data)
default:
return ""
}
}
示例3: ScrapeExamples
func ScrapeExamples(s *goquery.Selection) []string {
examples := []string{}
s.Find("span.h").Each(func(i int, s *goquery.Selection) {
examples = append(examples, s.Text())
})
return examples
}
示例4: JoinNodesWithSpace
func JoinNodesWithSpace(s *goquery.Selection) string {
texts := []string{}
s.Each(func(i int, s *goquery.Selection) {
texts = append(texts, s.Text())
})
return strings.Join(texts, " ")
}
示例5: parseColors
func parseColors(s *goquery.Selection) string {
colors := ""
s.Each(func(i int, s *goquery.Selection) {
colors += s.Text()
})
return colors
}
示例6: getSiblingsContent
func (this *contentExtractor) getSiblingsContent(currentSibling *goquery.Selection, baselinescoreSiblingsPara float64) []*goquery.Selection {
ps := make([]*goquery.Selection, 0)
if currentSibling.Get(0).DataAtom.String() == "p" && len(currentSibling.Text()) > 0 {
ps = append(ps, currentSibling)
return ps
} else {
potentialParagraphs := currentSibling.Find("p")
potentialParagraphs.Each(func(i int, s *goquery.Selection) {
text := s.Text()
if len(text) > 0 {
ws := this.config.stopWords.stopWordsCount(this.config.targetLanguage, text)
paragraphScore := ws.stopWordCount
siblingBaselineScore := 0.30
highLinkDensity := this.isHighLinkDensity(s)
score := siblingBaselineScore * baselinescoreSiblingsPara
if score < float64(paragraphScore) && !highLinkDensity {
node := new(html.Node)
node.Type = html.TextNode
node.Data = text
node.DataAtom = atom.P
nodes := make([]*html.Node, 1)
nodes[0] = node
newSelection := new(goquery.Selection)
newSelection.Nodes = nodes
ps = append(ps, newSelection)
}
}
})
}
return ps
}
示例7: findSigInTweet
func (rc *TwitterChecker) findSigInTweet(h SigHint, s *goquery.Selection) ProofError {
inside := s.Text()
html, err := s.Html()
checkText := h.checkText
if err != nil {
return NewProofError(keybase1.ProofStatus_CONTENT_FAILURE, "No HTML tweet found: %s", err)
}
G.Log.Debug("+ Checking tweet '%s' for signature '%s'", inside, checkText)
G.Log.Debug("| HTML is: %s", html)
rxx := regexp.MustCompile(`^(@[a-zA-Z0-9_-]+\s+)`)
for {
if m := rxx.FindStringSubmatchIndex(inside); m == nil {
break
} else {
prefix := inside[m[2]:m[3]]
inside = inside[m[3]:]
G.Log.Debug("| Stripping off @prefx: %s", prefix)
}
}
if strings.HasPrefix(inside, checkText) {
return nil
}
return NewProofError(keybase1.ProofStatus_DELETED, "Could not find '%s' in '%s'",
checkText, inside)
}
示例8: isBoostable
//a lot of times the first paragraph might be the caption under an image so we'll want to make sure if we're going to
//boost a parent node that it should be connected to other paragraphs, at least for the first n paragraphs
//so we'll want to make sure that the next sibling is a paragraph and has at least some substatial weight to it
func (this *contentExtractor) isBoostable(node *goquery.Selection) bool {
stepsAway := 0
next := node.Next()
for next != nil && stepsAway < node.Siblings().Length() {
currentNodeTag := node.Get(0).DataAtom.String()
if currentNodeTag == "p" {
if stepsAway >= 3 {
if this.config.debug {
log.Println("Next paragraph is too far away, not boosting")
}
return false
}
paraText := node.Text()
ws := this.config.stopWords.stopWordsCount(this.config.targetLanguage, paraText)
if ws.stopWordCount > 5 {
if this.config.debug {
log.Println("We're gonna boost this node, seems content")
}
return true
}
}
stepsAway++
next = next.Next()
}
return false
}
示例9: getDataFromDOM
func getDataFromDOM(s *gq.Selection, arr []string, code string) string {
var dt string
if arr[0] == "text" {
dt = s.Text()
} else {
dt, _ = s.Attr(arr[0])
}
return encode_string(dt, code)
}
示例10: noParasWithoutTable
func (e extractContent) noParasWithoutTable(s *goquery.Selection) bool {
s.FindMatcher(pTags).Each(func(i int, s *goquery.Selection) {
if len(s.Text()) < 25 {
s.Remove()
}
})
return s.FindMatcher(pTags).Length() == 0 && !nodeIs(s.Nodes[0], atom.Td)
}
示例11: getLinkDensity
func (d *Document) getLinkDensity(s *goquery.Selection) float32 {
linkLength := len(s.Find("a").Text())
textLength := len(s.Text())
if textLength == 0 {
return 0
}
return float32(linkLength) / float32(textLength)
}
示例12: parseHeader
func parseHeader(element *goquery.Selection, info *TrainInfo) {
element.Find("span").Each(func(i int, element *goquery.Selection) {
switch i {
case 0:
info.Category, info.Number, info.Name = parseTrainDenomination(element.Text())
case 2:
info.From, info.To = parseTrainRoute(element.Text())
}
})
}
示例13: displayDetails
func displayDetails(single *goquery.Selection) {
text := strings.TrimSpace(single.Text())
href, _ := single.Attr("href")
length := utf8.RuneCountInString(text)
if ((length > 5) && wordExists(text, "keywords")) || ((length > 5) && wordExists(href, "keywords")) {
if wordExists(text, "products") {
fmt.Println("Link", single.Text(), "--->", href)
}
}
}
示例14: parseResource
func parseResource(s *goquery.Selection) (_production, _stored, _capacity int) {
productionStr, _ := s.Attr("title")
production, _ := strconv.Atoi(productionStr)
status := s.Text()
split := strings.Split(status, "/")
stored, _ := strconv.Atoi(split[0])
capacity, _ := strconv.Atoi(split[1])
return production, stored, capacity
}
示例15: addIngredient
func addIngredient(ingredients []data.Ingredient, a *goquery.Selection) []data.Ingredient {
if href, ok := a.Attr("href"); ok {
glog.V(2).Info(" href: " + href)
id, err := strconv.Atoi(strings.Split(href, "/")[2])
if err != nil {
glog.Errorf("Failed to extract id from %s: %v", href, err)
} else {
ingredients = append(ingredients, data.Ingredient{Name: a.Text(), Id: id})
}
}
return ingredients
}