найти текст в html используя колли / goquery Голанга - PullRequest
0 голосов
/ 14 октября 2019

Как я могу использовать колли / goquery, чтобы найти числовые значения в этом HTML-фрагменте:

<body>
 <a href="/xxxx/aaaa" > AAAA </a>,  125.00  <br>
 <a href="/xxxx/bbbb" > BBBB </a>,  235.20  <br>
 <a href="/xxxx/cccc" > CCCC </a>,  145.04  <br>
</body>

1 Ответ

0 голосов
/ 14 октября 2019

Этот код получит цифры в виде строковых частей с включенным пробелом. Вы должны урезать их и проанализировать как числа.

Обновление: Код теперь обрезает строки и анализирует их как float.

package main

import (
    "fmt"
    "github.com/PuerkitoBio/goquery"
    "log"
    "strconv"
    "strings"
)

func main() {
    html := `<body>
 <a href="/xxxx/aaaa" > AAAA </a>,  125.00  <br>
 <a href="/xxxx/bbbb" > BBBB </a>,  235.20  <br>
 <a href="/xxxx/cccc" > CCCC </a>,  145.04  <br>
</body>`

    reader := strings.NewReader(html)

    doc, err := goquery.NewDocumentFromReader(reader)
    if err != nil {
        log.Fatal(err)
    }

    justText := doc.Text()
    lines := strings.Split(justText, "\n")
    for _, line := range lines {
        if len(line) > 0 {
            parts := strings.Split(line, ",")
            number, err := strconv.ParseFloat(strings.TrimSpace(parts[1]), 64)
            if err != nil {
                fmt.Println(err)
            } else {
                fmt.Println(number)
            }
        }
    }
}


...