Go Web 爬虫快速启动指南
package main
import (
"fmt"
"net/http"
"os"
"github.com/PuerkitoBio/goquery"
)
func main() {
// 检查命令行参数
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "Usage: %s <url>\n", os.Args[0])
os.Exit(1)
}
// 启动并行的HTTP客户端
url := os.Args[1]
res, err := http.Get(url)
if err != nil {
panic(err)
}
defer res.Body.Close()
if res.StatusCode != 200 {
fmt.Fprintf(os.Stderr, "Failed to fetch %s, status code: %d\n", url, res.StatusCode)
os.Exit(1)
}
// 使用goquery解析HTML文档
doc, err := goquery.NewDocumentFromReader(res.Body)
if err != nil {
panic(err)
}
// 查询并打印所有的段落文本
doc.Find("p").Each(func(i int, s *goquery.Selection) {
fmt.Printf("Paragraph %d: %s\n", i, s.Text())
})
}
这段代码修复了原始代码中的错误,并添加了必要的错误处理和命令行参数检查。它演示了如何使用Go语言快速编写一个简单的Web爬虫,用于抓取给定URL的所有段落文本。
评论已关闭