-
必要なパッケージのインストール: Webスクレイピングには、以下のパッケージを使用します。
go get github.com/PuerkitoBio/goquery
このパッケージはHTMLドキュメントのパースと操作を容易にするためのものです。
-
基本的なスクレイピングの例: 以下のコードは、指定したURLからHTMLドキュメントを取得し、特定の要素を抽出する基本的なスクレイピングの例です。
package main
import (
"fmt"
"log"
"github.com/PuerkitoBio/goquery"
)
func main() {
url := "https://example.com"
doc, err := goquery.NewDocument(url)
if err != nil {
log.Fatal(err)
}
doc.Find("h1").Each(func(i int, s *goquery.Selection) {
fmt.Println(s.Text())
})
}
この例では、指定したURLからHTMLドキュメントを取得し、h1
要素を抽出して表示しています。
- より高度なスクレイピングの例: 以下のコードは、Golangを使用してWebページ内のリンクを取得するより高度なスクレイピングの例です。
package main
import (
"fmt"
"log"
"net/http"
"github.com/PuerkitoBio/goquery"
)
func main() {
url := "https://example.com"
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
doc, err := goquery.NewDocumentFromReader(resp.Body)
if err != nil {
log.Fatal(err)
}
doc.Find("a").Each(func(i int, s *goquery.Selection) {
link, _ := s.Attr("href")
fmt.Println(link)
})
}
この例では、指定したURLからHTMLドキュメントを取得し、ページ内のリンクを抽出して表示しています。
これらは基本的な例ですが、Golangを使用したWebスクレイピングの基礎を学ぶのに役立つでしょう。より複雑なスクレイピングやデータの解析を行う場合は、さらに多くの機能やパッケージが利用できます。