基于go1.19的站点模板爬虫
package main
import (
"fmt"
"log"
"net/http"
"os"
"time"
"github.com/PuerkitoBio/goquery"
)
func main() {
// 设置超时时间
client := &http.Client{Timeout: 10 * time.Second}
// 创建http.Get请求
res, err := client.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
if res.StatusCode != 200 {
log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)
}
// 使用goquery解析HTML文档
doc, err := goquery.NewDocumentFromReader(res.Body)
if err != nil {
log.Fatal(err)
}
// 查询并输出所有的链接
doc.Find("a").Each(func(i int, s *goquery.Selection) {
if href, exists := s.Attr("href"); exists {
fmt.Printf("Link found: %s\n", href)
}
})
}
这段代码使用了Go语言的标准库net/http
来发送HTTP请求,并使用github.com/PuerkitoBio/goquery
包来解析HTML文档并查询其中的元素。代码简洁,注重于展示如何实现一个基本的站点模板爬虫。
评论已关闭