はじめに
Go言語でのスクレイピングについて、基本的な手順と使用するツールを説明します。
必要なパッケージのインストール
Go言語でウェブスクレイピングを行うには、HTMLを解析するためのパッケージが必要となります。ここでは、goquery
というパッケージを使用します。goquery
はjQueryのような構文でHTMLの解析を行うことができるため、非常に使いやすいです。
ターミナルで以下のコマンドを実行してgoquery
をインストールします。
go get github.com/PuerkitoBio/goquery
スクレイピングの基本的な手順
-
ウェブページの取得:
http.Get()
関数を使用してウェブページを取得します。 -
HTMLの解析: 取得したウェブページのHTMLを
goquery
で解析します。 -
必要な情報の抽出:
goquery
のセレクタを使用して、HTMLから必要な情報を抽出します。
以下に、この手順を用いてウェブページからタイトルを取得する基本的なコードを示します。
package main
import (
"fmt"
"net/http"
"github.com/PuerkitoBio/goquery"
)
func main() {
// 1. ウェブページの取得
res, err := http.Get("http://example.com")
if err != nil {
panic(err)
}
defer res.Body.Close()
// 2. HTMLの解析
doc, err := goquery.NewDocumentFromReader(res.Body)
if err != nil {
panic(err)
}
// 3. 必要な情報の抽出
title := doc.Find("title").Text()
fmt.Println(title)
}
このコードはhttp://example.com
からHTMLを取得し、そのHTMLから<title>
タグのテキストを抽出して表示します。
まとめ
この記事では、Go言語を使用したスクレイピングの基本的な手順と、それを実現するためのgoquery
パッケージについて説明しました。しかし、これはあくまで基本的なスクレイピングの例であり、より複雑なウェブページや動的なコンテンツのスクレイピングには、さらなるテクニックやツールが必要になります。