爆速でGo!

GoGo!

Goで軽量なスクレイピングライブラリを作ってみた

リポジトリ

github.com

はじめに

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スライスを返す以下の関数を御覧ください。

gist.github.com

ユーザーにdepthを指定してもらうことで、一回のスクレイピングで全SERPsを取得しています。

ryonakao/netsurderPuerkitoBio/goqueryに依存しています。

まとめ

ライブラリ開発めちゃんこ楽しい♪
どんどん作っていこうと思います!!