Golangを使用したWebスクレイピングの方法


  1. 必要なパッケージのインストール: Webスクレイピングには、以下のパッケージを使用します。

    go get github.com/PuerkitoBio/goquery

    このパッケージはHTMLドキュメントのパースと操作を容易にするためのものです。

  2. 基本的なスクレイピングの例: 以下のコードは、指定した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要素を抽出して表示しています。

  1. より高度なスクレイピングの例: 以下のコードは、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スクレイピングの基礎を学ぶのに役立つでしょう。より複雑なスクレイピングやデータの解析を行う場合は、さらに多くの機能やパッケージが利用できます。