
__
__ _ _(_ ) __ _ __
/'_ '\/'_' )| | /'__'( '__)
( (_) ( (_| || |( ___| |
'\__ '\__,_(___'\____(_)
( )_) |
\___/' @dwisiswant0
HTML属性からURLをクロールインで高速に取得するツール。@omespino Tweetに触発され、Chrome DevTools Protocolを通じてJavaScriptを評価することでsrc、href、url、actionの値を抽出可能です。
インストールは簡単です。リリースページからプリビルドバイナリをダウンロードし、解凍して実行するだけです。または以下のコマンドでも可能です。
▶ (sudo) curl -sSfL https://git.io/galer | sh -s -- -b /usr/local/bin
go1.22+コンパイラがインストール・設定されている場合:
▶ go install -v github.com/dwisiswant0/galer@latest
▶ git clone https://github.com/dwisiswant0/galer
▶ cd galer
▶ go build .
▶ (sudo) install galer /usr/local/bin
galerは以下のように簡単に実行できます。
▶ galer -u "http://domain.tld"

これによりツールのヘルプが表示されます。以下がサポートされているすべてのオプションです。
$ galer -h
__ v0.2.0
__ _ _(_ ) __ _ __
/'_ '\/'_' )| | /'__'( '__)
( (_) ( (_| || |( ___| |
'\__ '\__,_(___'\____(_)
( )_) |
\___/' @dwisiswant0
A fast tool to fetch URLs from HTML attributes by crawl-in
Usage:
galer -u [URL|URLs.txt] -o [output.txt]
Options:
-u, --url <URL/FILE> Target to fetches (single target URL or list)
-e, --extension <EXT> Show only certain extensions (comma-separated, e.g. js,php)
-c, --concurrency <N> Concurrency level (default: 50)
-w, --wait <N> Wait N seconds before evaluate (default: 1)
-d, --depth <N> Max. depth for crawling (levels of links to follow)
--same-host Same host only
--same-root Same root (eTLD+1) only (takes precedence over --same-host)
-o, --output <FILE> Save fetched URLs output into file
-T, --template <string> Format for output template (e.g., "{{scheme}}://{{host}}{{path}}")
Valid variables are: "raw_url", "scheme", "user", "username",
"password", "host", "hostname", "port", "path", "raw_path",
"escaped_path", "raw_query", "fragment", "raw_fragment".
-t, --timeout <N> Max. time (seconds) allowed for connection (default: 60)
-s, --silent Silent mode (suppress an errors)
-v, --verbose Verbose mode show error details unless you weren't use silent
-h, --help Display its helps
▶ galer -u "http://domain.tld"
▶ galer -u /path/to/urls.txt
▶ cat urls.txt | galer
他のツールと連携したい場合:
▶ subfinder -d domain.tld -silent | httpx -silent | galer
galerをライブラリとして使用できます。
▶ go get github.com/dwisiswant0/galer/pkg/galer@latest
例:
package main
import (
"fmt"
"github.com/dwisiswant0/galer/pkg/galer"
)
func main() {
cfg := &galer.Config{
Timeout: 60,
}
cfg = galer.New(cfg)
run, err := cfg.Crawl("https://twitter.com")
if err != nil {
panic(err)
}
for _, url := range run {
fmt.Println(url)
}
}
まだ混乱している場合やバグを発見した場合は、Issueを開いてください。すべてのバグ報告は歓迎しますが、一部の機能は時間不足のためまだテストされていない可能性があります。
[!CAUTION] galerはまだ1.0に達していません。したがって、このライブラリは現在サポートされておらず、安定したAPIを提供していません。使用は自己責任で行ってください。
このライブラリのAPIの安定性は保証されません。大きな変更は予想されていませんが、APIの調整やバグ修正が行われる可能性があります。
id_ID • /gäˈlər/ — kalau galer jangan dicium baunya, langsung cuci tangan, bego!
sebelは @dwisiswant0 によってMITライセンスの下で公開されています。LICENSEを参照してください。