Open2
Collyを使ってみる
サンプルを理解する。
読み方がやや特殊。
ページアクセスとページ解析がハンドラによって分離されている。
// 訪れたページから再帰的にaタグのリンクを辿る
func main() {
// インスタンスの作成
c := colly.NewCollector()
// HTML解析時に実行されるイベントハンドラ
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
// href属性の値を取り出しリクエスト
e.Request.Visit(e.Attr("href"))
})
// リクエスト時に実行されるイベントハンドラ
c.OnRequest(func(r *colly.Request) {
// リクエスト先のURLを書き出す
fmt.Println("Visiting", r.URL)
})
// ページにアクセスする処理
c.Visit("http://go-colly.org/")
}
サイト中のimgタグのsrc属性値を出力する。
document.querySelectorAll("img");
みたいなもん
c.OnHTML("img", func(e *colly.HTMLElement) {
fmt.Println(e.Attr("src"))
})