💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 高三网 goquery包github地址:https://github.com/PuerkitoBio/goquery 目标网站(高三网):http://www.gaosan.com/gaokao/85464.html 下面开始操作 老方法,cmd go get获取包,复制他的示例代码,安装,显然很成功 ![](https://img.kancloud.cn/72/c8/72c834f732b60c692651d6a130ee8add_1367x333.png) ![](https://img.kancloud.cn/c3/7a/c37ac8be3d213c1b103bffb9795304bf_1030x642.png) 现在开始学习使用他这包的方法,根据节点爬取自己需要的内容。这里爬取这表格 ![](https://img.kancloud.cn/bb/ca/bbca06c1ca9d9dc418dca24baee34cea_1829x799.png) 运行结果: ![](https://img.kancloud.cn/93/cf/93cf57ca6fdc0e7d06c2d92f8c5e3872_1531x420.png) Find()的用法,td:nth-child(1)第一个td的标签,只有一个标签只能这样了 ``` package main import ( "fmt" "net/http" "github.com/PuerkitoBio/goquery" ) // 搞一个结构体 储存json 数据 type List struct { Schoolname string `json:"schoolname"` Department string `json:"department"` Region string `json:"region"` Class string `json:"class"` } // 项目名称 高三网 func Gaosan() { list := []List{} // 使用http包的get方法 发起请求html页面 res, err := http.Get("http://www.gaosan.com/gaokao/85464.html") // 错误处理 if err != nil { fmt.Println(err) } // 结束时关闭 释放资源 defer res.Body.Close() // 网页状态码 if res.StatusCode != 200 { fmt.Println("请求超时!") } // 使用goquery包的方法加载html网页 doc, err := goquery.NewDocumentFromReader(res.Body) if err != nil { fmt.Println(err) } // 根据节点 解析网页 doc.Find("#data85464 table tr").Each(func(i int, s *goquery.Selection) { // 抓取节点 td标签的 文字内容 // title := s.Find("td:nth-child(" + strconv.Itoa(1) + ")").Text() //fmt.Printf("内容 %d: %s\n", i, title) // 这样输出也可以 // fmt.Println(s.Text()) schoolname := s.Find("td:nth-child(1)").Text() department := s.Find("td:nth-child(2)").Text() region := s.Find("td:nth-child(3)").Text() class := s.Find("td:nth-child(4)").Text() list = append(list, List{ Schoolname: schoolname, Department: department, Region: region, Class: class, }) }) // 输出 josn的结构体 fmt.Println(list) } func main() { Gaosan() } ```