> 在 Go 语言中,可以使用 net/http 包发送 HTTP 请求,并使用第三方库 goquery 处理 HTML 标签。下面是一个使用 net/http 和 goquery 库写的简单爬虫程序,用于爬取指定网站的标题和链接: ```go package main import ( "fmt" "log" "strings" "github.com/PuerkitoBio/goquery" ) func main() { // 发送 HTTP GET 请求 resp, err := http.Get("https://www.example.com") if err != nil { log.Fatal(err) } // 解析 HTML 标签 doc, err := goquery.NewDocumentFromReader(resp.Body) if err != nil { log.Fatal(err) } // 查找并处理 HTML 标签 doc.Find("a").Each(func(i int, s *goquery.Selection) { // 获取链接和文本内容 href, _ := s.Attr("href") text := strings.TrimSpace(s.Text()) // 打印标题和链接 fmt.Printf("%d. %s - %s\n", i+1, text, href) }) } ``` 在上面的示例程序中,我们首先使用 `http.Get` 函数发送 HTTP GET 请求,获取网页的 `HTML` 内容。然后,我们使用 `goquery.NewDocumentFromReader` 函数解析 HTML 内容,返回一个 `*goquery.Document `对象。接下来,我们使用 `doc.Find` 函数查找 `HTML` 标签,这里我们查找的是 `a` 标签,并使用 `Each` 函数遍历所有匹配的标签。在遍历过程中,我们获取每个标签的链接和文本内容,并打印输出。 > 在实际爬虫中,需要注意网站的反爬虫机制,例如限制访问频率、使用验证码、设置登录验证等等。为了避免被网站封禁,爬虫程序应该尽量模拟人类的访问行为,并遵守网站的访问规则。此外,爬取过程中还需要注意数据的去重、存储和清洗等问题,确保爬取的数据质量和安全性。