go 语言爬虫库goQuery 的详细使用(知乎日报详情页解析示例)
warning:
这篇文章距离上次修改已过202天,其中的内容可能已经有所变动。
package main
import (
"fmt"
"log"
"net/http"
"github.com/PuerkitoBio/goquery"
)
// 知乎日报详情页的URL
const zhihuDailyStoryURL = "https://daily.zhihu.com/story/9573890"
func main() {
// 发送HTTP GET请求
res, err := http.Get(zhihuDailyStoryURL)
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(".story-content-wrap h1").Each(func(i int, s *goquery.Selection) {
title := s.Text()
fmt.Printf("标题: %s\n", title)
})
}
这段代码使用goquery库从知乎日报详情页中提取并输出了标题。首先,它发送一个HTTP GET请求,然后使用goquery解析返回的HTML文档。通过指定CSS选择器,它找到包含标题的元素并打印出标题文本。这个例子展示了如何使用goquery进行基本的网页解析,并且如何处理HTTP请求。
评论已关闭