Goで軽量なスクレイピングライブラリを作ってみた
リポジトリ
はじめに
GoでWebクローラーを開発する際、皆さんどうされてますか??
フルスクラッチで作るのは少し面倒だし、asciimoo/collyのようなフルスタックなのはいらない、、という時に丁度いいライブラリがなかったので作りました!
本当に最低限の機能のみ搭載しました。
機能
主な3つの機能を紹介します。
オーガニック検索
キーワードを入れて自然検索結果画面に表示されるページURLを返します。
import "github.com/ryonakao/netsurfer" urls, err := netsurfer.OrganicSearch("キーワード", 1)
順位調査
指定キーワードで検索した時、指定ページがオーガニックで何位に掲載されるかを返します。
import ( "net/url" "github.com/ryonakao/netsurfer" ) u, _ := url.Parse("https://qiita.com/ryonakao") rank, _ := netsurfer.GetRank(u, "ryonakao", 2)
HTML取得
指定ページの静的ページを返します。
import "github.com/ryonakao/netsurfer" html, err := netsurfer.GetHTML("https://qiita.com/ryonakao")
実装一部紹介
SERPsのurlスライスを返す以下の関数を御覧ください。
ユーザーにdepthを指定してもらうことで、一回のスクレイピングで全SERPsを取得しています。
*ryonakao/netsurderはPuerkitoBio/goqueryに依存しています。
まとめ
ライブラリ開発めちゃんこ楽しい♪
どんどん作っていこうと思います!!