首先需要安装goquery库,可以使用以下命令进行安装:

go get github.com/PuerkitoBio/goquery

接下来,假设我们要解析的网页是以下结构:

<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <div id="content">
      <h1>Welcome to my page</h1>
      <ul class="list">
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
      </ul>
    </div>
  </body>
</html>

我们可以使用以下代码解析该网页:

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/PuerkitoBio/goquery"
)

func main() {
	// 发送http请求获取网页内容
	resp, err := http.Get("http://example.com")
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	// 使用goquery解析网页内容
	doc, err := goquery.NewDocumentFromReader(resp.Body)
	if err != nil {
		log.Fatal(err)
	}

	// 获取网页标题
	title := doc.Find("title").Text()
	fmt.Println("Title:", title)

	// 获取div#content下的h1标签内容
	h1 := doc.Find("#content h1").Text()
	fmt.Println("H1:", h1)

	// 获取ul.list下的所有li标签内容
	items := []string{}
	doc.Find("ul.list li").Each(func(i int, s *goquery.Selection) {
		items = append(items, s.Text())
	})
	fmt.Println("Items:", items)
}

运行以上代码,输出结果如下:

Title: My Page
H1: Welcome to my page
Items: [Item 1 Item 2 Item 3]

通过以上代码,我们可以看到goquery库的强大之处,可以轻松地解析多层html网页。

go语言用goquery库解析多层html网页

原文地址: https://www.cveoy.top/t/topic/bUQt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录