import (
"fmt"
"log"
"net/http"
"github.com/PuerkitoBio/goquery" //想安装第三方库(go get
//github.com/PuerkitoBio/goquery)
)
func main() {
authors := "https://so.gushiwen.org/authors" //找到目标的url
res, err := http.Get(authors) // 获取返回的html
if err != nil {
panic(err)
} else {
print("success")
}
defer res.Body.Close()
if res.StatusCode != 200 { //判断状态码是不是200
log.Fatalf("statys code error : %d %s", res.StatusCode, res.Status)
}
doc, err := goquery.NewDocumentFromReader(res.Body) //取出text 文件
if err != nil {
fmt.Errorf("doc err ", err)
}
//并且按需要的内容提取
doc.Find(".sons").Find(".cont").Find("a").Each(func(i int, s *goquery.Selection) {
author := s.Text()
fmt.Printf("%d author =%s \n", i, author)
link, _ := s.Attr("href")
fmt.Printf("%d link = %s \n", i, link)
})
}
编译结果输出结果如下正确