Golang - поиск текста для каждого дочернего элемента отдельно с помощью PuerkitoBio / goquery - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок в Golang и только начал изучать его. Я хочу найти некоторую информацию с сайта и извлечь нужные мне данные. Я использую пакет PuerkitoBio / goquery для выбора элементов и чтения из них. Я хотел бы извлечь данные из этой части html:

<ul class="cases-counter">
  <li>Cases: <strong>457</strong><br></li>
  <li>Active: <strong>16</strong><br></li>
</ul>

И вот этот код, который у меня есть:

doc.Find(".cases-counter").Each(func(i int, s *goquery.Selection) {
    text := s.Find("li").Text()
    fmt.Print(i)
    fmt.Printf(text)
})

Это печатает меня:

0Cases: 457Active: 16

Как я могу напечатать каждый текст li element отдельно как две разные переменные в этом примере?

1 Ответ

0 голосов
/ 22 апреля 2020

Вы можете попробовать это.

func ExampleNewDocumentFromReader_string() {

    data := `
<html>
    <ul class="cases-counter">
  <li id="Cases">Cases: <strong>457</strong><br></li>
  <li id="Active">Active: <strong>16</strong><br></li>
</ul>
</html>`

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

    doc.Find(".cases-counter").Each(func(i int, s *goquery.Selection) {

        Cases := s.Find("#Cases").Text()
        Active := s.Find("#Active").Text()
        fmt.Printf("Review %d: %s, %s\n", i, Cases, Active)
    })

}
func main() {
    ExampleNewDocumentFromReader_string()
}
...