searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

golang爬虫的简单使用之二页面解析

2024-11-28 09:53:27
4
0

 

提取网页内容,就需要用到相关解析库,常用的有:goquery库。

写一个简单的例子,展示下如何使用 goquery 来获取网页标题title和网页中的超链接:

package main

import (
	"log"
	"net/http"

	"github.com/PuerkitoBio/goquery"
)

func main() {
	response, err := http.Get("xxxxxx.com")
	if err != nil {
		log.Fatal(err)
	}
	defer response.Body.Close()

	doc, err := goquery.NewDocumentFromReader(response.Body)
	if err != nil {
		log.Fatal(err)
	}

	doc.Find("title").Each(func(i int, s *goquery.Selection) {
		log.Println(s.Text())
	})

	doc.Find("a").Each(func(i int, s *goquery.Selection) {
		href, exists := s.Attr("href")
		if exists {
			log.Println(href)
		}
	})
}

 

0条评论
作者已关闭评论
杨晔
2文章数
0粉丝数
杨晔
2 文章 | 0 粉丝
杨晔
2文章数
0粉丝数
杨晔
2 文章 | 0 粉丝
原创

golang爬虫的简单使用之二页面解析

2024-11-28 09:53:27
4
0

 

提取网页内容,就需要用到相关解析库,常用的有:goquery库。

写一个简单的例子,展示下如何使用 goquery 来获取网页标题title和网页中的超链接:

package main

import (
	"log"
	"net/http"

	"github.com/PuerkitoBio/goquery"
)

func main() {
	response, err := http.Get("xxxxxx.com")
	if err != nil {
		log.Fatal(err)
	}
	defer response.Body.Close()

	doc, err := goquery.NewDocumentFromReader(response.Body)
	if err != nil {
		log.Fatal(err)
	}

	doc.Find("title").Each(func(i int, s *goquery.Selection) {
		log.Println(s.Text())
	})

	doc.Find("a").Each(func(i int, s *goquery.Selection) {
		href, exists := s.Attr("href")
		if exists {
			log.Println(href)
		}
	})
}

 

文章来自个人专栏
go爬虫
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0