2024年Go最全Golang爬虫封装_golang 爬虫封装,2024年最新双非渣本Golang四年磨一剑
warning:
这篇文章距离上次修改已过193天,其中的内容可能已经有所变动。
package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"net/http"
)
// 简单的HTTP GET请求函数
func httpGet(url string) (*http.Response, error) {
return http.Get(url)
}
// 使用goquery解析HTML并提取链接的函数
func extractLinks(res *http.Response) ([]string, error) {
doc, err := goquery.NewDocumentFromResponse(res)
if err != nil {
return nil, err
}
var links []string
doc.Find("a").Each(func(i int, s *goquery.Selection) {
if href, exists := s.Attr("href"); exists {
links = append(links, href)
}
})
return links, nil
}
func main() {
url := "https://example.com"
res, err := httpGet(url)
if err != nil {
fmt.Printf("Error fetching URL %s: %v", url, err)
return
}
defer res.Body.Close() // 确保在函数结束时关闭Body
links, err := extractLinks(res)
if err != nil {
fmt.Printf("Error extracting links: %v", err)
return
}
for _, link := range links {
fmt.Println(link)
}
}
这个示例展示了如何使用net/http
包发送HTTP GET请求,以及如何使用github.com/PuerkitoBio/goquery
包解析HTML并提取链接。这是一个简单的Golang爬虫封装的例子,适合作为学习和实践的参考。
评论已关闭