googler
、コマンドラインから Google (ウェブ、ニュース、ビデオ、サイト検索) を実行できる強力なツールです。各結果のタイトル、URL、要約が表示され、端末からブラウザで直接開くことができます。結果はページ単位で取得されます (ページ ナビゲーションを使用)。単一のgoogler
インスタンスでの順次検索をサポートします。
googler
当初、X を使用しないヘッドレス サーバーに対応するために作成されました。テキスト ベースのブラウザと統合できます。しかし、それはさらに多くの機能を提供する、非常に便利で柔軟なユーティリティに成長しました。たとえば、任意の数の結果を取得したり、どこからでも開始したり、任意の期間で検索を制限したり、任意の数の Web サイトを Google 検索するためのエイリアスを定義したり、ドメインを簡単に切り替えたりすることができます。これらすべてが、広告や迷走 URL のない非常にクリーンなインターフェイスで行われます。シェル補完スクリプトを使用すると、オプションを覚えておく必要がなくなります。
googler
Google とは一切関係がありません。
以下にいくつかの使用例を示します。
Googleのハローワールド:
$ googler hello world
サイトimdb.com のキーワードjungle bookの3番目の結果から始めて、過去14 か月以内に更新された15 件の結果を取得します。
$ googler -n 15 -s 3 -t m14 -w imdb.com jungle book
または、過去 14 か月の代わりに、特に 2016 年 4 月 4 日から 2016 年 12 月 31 日までの結果を探します。
$ googler -n 15 -s 3 --from 04/04/2016 --to 12/31/2016 -w imdb.com jungle book
ガジェットに関する最近のニュースを読む:
$ googler -N gadgets
Google Indiaサーバーから IPL クリケットの結果を英語で取得します。
$ googler -c in -l en IPL cricket
PyCon 2020 でビデオを検索します。
$ googler -V PyCon 2020
引用されたテキストを検索:
$ googler it's a "beautiful world" in spring
特定のファイル タイプを検索します。
$ googler instrumental filetype:mp3
自動スペル修正を無効にします。たとえば、 google
ではなくgoogler
の結果を取得します。
$ googler -x googler
検索で幸運を感じています:
$ googler -j leather jackets
Web サイト固有の検索:
$ googler -w amazon.com -w ebay.com digital camera
サイト固有の検索はオムニプロンプトで続行されます。
位置引数は (区切りの空白を使用して) 結合されて最終的なクエリを形成するため、エイリアスを創造的に使用できます。たとえば、seoarticlefactory.com を検索結果から常に除外します。
$ alias googler='googler " -site:seoarticlefactory.com"'
$ googler '<hugely popular keyword filled with SEO garbage>'
単語の定義を検索するためのエイリアス:
alias define='googler -n 2 define'
n
、 p
、 o
、 O
、 q
、 g keywords
または結果インデックスをオムニプロンプトで検索します。オムニプロンプトはこれらのキーまたはインデックス文字列をコマンドとして認識するため、それらにg
をプレフィックスとして付ける必要があります。
g n
g g keywords
g 1
入力および出力のリダイレクト:
$ googler -C hello world < input > output
制御文字の印刷を回避するには (カラー出力の場合) -C
必要であることに注意してください。
パイプ出力:
$ googler -C hello world | tee output
カスタム カラー スキームを使用します。たとえば、Solarized Dark 用に設計された暖色系のカラー スキーム (スクリーンショット)。
$ googler --colors bjdxxy google
$ GOOGLER_COLORS=bjdxxy googler google
HTTPS プロキシ (ポート 8118 でリッスンしているローカル Privoxy インスタンスなど) を介してトラフィックをトンネルします。
$ googler --proxy localhost:8118 google
デフォルトでは、環境変数https_proxy
が定義されている場合は使用されます。
複数の検索キーワードを引用して自動補完します (補完スクリプトを使用):
$ googler 'hello w<TAB>
さらに詳しいヘルプ:
$ googler -h
$ man googler
googler
でさらに楽しいことを試すことができます:
filetype:mime
、 site:somesite.com
) のサポートgoogler
Python 3.6 以降が必要です。各マイナー バージョンの最新パッチ リリースのみがサポートされます。
オムニプロンプトで URL をクリップボードにコピーするには、 googler
Linux ではxsel
またはxclip
またはtermux-clipboard-set
(同じ順序)、macOS ではpbcopy
(デフォルトでインストールされている)、Windows ではclip
(デフォルトでインストールされている) を探します。 X11 が存在しない場合は、GNU Screen および tmux コピー&ペースト バッファーもサポートします。
パッケージ マネージャーからgoogler
インストールします。利用可能なバージョンが古い場合は、別のインストール方法を試してください。
● Snap Store ( snap install googler
)
googler
v2.7 以降には、インプレース自己アップグレード メカニズムが付属していますが、これを無効にすることもできます。これを行うには、実行します
$ make disable-self-upgrade
インストール前。
Arch Linux、CentOS、Debian、Fedora、openSUSE、および Ubuntu のパッケージは、最新の安定リリースで利用できます。
git がインストールされている場合は、このリポジトリのクローンを作成します。それ以外の場合は、最新の安定リリースまたは開発バージョンをダウンロードしてください。
デフォルトの場所 ( /usr/local
) にインストールするには:
$ sudo make install
googler
と関連ドキュメントを削除するには、次のコマンドを実行します。
$ sudo make uninstall
別の場所にインストールする場合に備えて、 PREFIX
がサポートされています。
googler
スタンドアロンの実行可能ファイルです (Termux などの環境でも実行できます)。含まれているディレクトリから:
$ ./googler
googler
単一のスタンドアロン スクリプトであるため、必要に応じて 1 つのファイルだけをダウンロードできます。
最新の安定バージョンをインストールするには、次のコマンドを実行します。
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v4.3.2/googler && sudo chmod +x /usr/local/bin/googler
次に、次のコマンドを実行して Googler 自身をアップグレードさせることができます。
$ sudo googler -u
同様に、git master (危険) からインストールする場合は、次を実行します。
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/master/googler && sudo chmod +x /usr/local/bin/googler
実行してアップグレードします
$ sudo googler -u --include-git
Bash、Fish、Zsh の検索キーワードとオプション補完スクリプトはauto-completion/
のそれぞれのサブディレクトリにあります。インストール手順については、シェルのマニュアルを参照してください。
usage: googler [-h] [-s N] [-n N] [-N] [-V] [-c TLD] [-l LANG] [-g CC] [-x]
[--colorize [{auto,always,never}]] [-C] [--colors COLORS] [-j] [-t dN] [--from FROM]
[--to TO] [-w SITE] [-e SITE] [--unfilter] [-p PROXY] [--notweak] [--json]
[--url-handler UTIL] [--show-browser-logs] [--np] [-4] [-6] [-u] [--include-git] [-v] [-d]
[KEYWORD [KEYWORD ...]]
Google from the command-line.
positional arguments:
KEYWORD search keywords
optional arguments:
-h, --help show this help message and exit
-s N, --start N start at the Nth result
-n N, --count N show N results (default 10)
-N, --news show results from news section
-V, --videos show results from videos section
-c TLD, --tld TLD country-specific search with top-level domain .TLD, e.g., 'in' for India
-l LANG, --lang LANG display in language LANG
-g CC, --geoloc CC country-specific geolocation search with country code CC, e.g. 'in' for India.
Country codes are the same as top-level domains
-x, --exact disable automatic spelling correction
--colorize [{auto,always,never}]
whether to colorize output; defaults to 'auto', which enables color when stdout
is a tty device; using --colorize without an argument is equivalent to
--colorize=always
-C, --nocolor equivalent to --colorize=never
--colors COLORS set output colors (see man page for details)
-j, --first, --lucky open the first result in web browser and exit
-t dN, --time dN time limit search [h5 (5 hrs), d5 (5 days), w5 (5 weeks), m5 (5 months), y5 (5
years)]
--from FROM starting date/month/year of date range; must use American date format with
slashes, e.g., 2/24/2020, 2/2020, 2020; can be used in conjunction with --to,
and overrides -t, --time
--to TO ending date/month/year of date range; see --from
-w SITE, --site SITE search a site using Google
-e SITE, --exclude SITE
exclude site from results
--unfilter do not omit similar results
-p PROXY, --proxy PROXY
tunnel traffic through an HTTP proxy; PROXY is of the form
[http://][user:password@]proxyhost[:port]
--notweak disable TCP optimizations and forced TLS 1.2
--json output in JSON format; implies --noprompt
--url-handler UTIL custom script or cli utility to open results
--show-browser-logs do not suppress browser output (stdout and stderr)
--np, --noprompt search and exit, do not prompt
-4, --ipv4 only connect over IPv4 (by default, IPv4 is preferred but IPv6 is used as a
fallback)
-6, --ipv6 only connect over IPv6
-u, --upgrade perform in-place self-upgrade
--include-git when used with --upgrade, get latest git master
-v, --version show program's version number and exit
-d, --debug enable debugging
omniprompt keys:
n, p fetch the next or previous set of search results
index open the result corresponding to index in browser
f jump to the first page
o [index|range|a ...] open space-separated result indices, numeric ranges
(sitelinks unsupported in ranges), or all, in browser
open the current search in browser, if no arguments
O [index|range|a ...] like key 'o', but try to open in a GUI browser
g keywords new Google search for 'keywords' with original options
should be used to search omniprompt keys and indices
c index copy url to clipboard
u toggle url expansion
q, ^D, double Enter exit googler
? show omniprompt help
* other inputs issue a new search with original options
googler
何もありません!これは、ユーティリティの速度を維持し、OS 固有の違いを避けるためです。ユーザーは、エイリアスを使用して構成ファイルの利点を享受できます (環境変数を使用してさらにカスタマイズできるカラースキームを除きます。「カラー」を参照)。オプションを覚える必要はありません。
たとえば、bash/zsh/ksh/etc の次のエイリアスです。
alias g='googler -n 7 -c ru -l ru'
Google Russia サーバーから 7 つの結果を取得します。ロシア語の結果が優先されます。
エイリアスは、構成ファイルを使用する次の両方の目的を果たします。
g
呼び出すと、優先設定に展開されます。argparse
仕組みのおかげで、エイリアスの設定が cli から渡されたオプションによって完全にオーバーライドされるようにgoogler
が作成されています。したがって、同じユーザーがg -l de -c de -n 12 hello world
を実行すると、ドイツ語の結果が優先されて、Google Germany サーバーから 12 件の結果が返されます。 googler @t
独自のキーワードを使用した Google Site Search の便利なアドオンです。 googler
はサイトを検索する統合オプションがありますが、エイリアスを使用してさらに簡素化しました。ファイル googler_at には、Web サイト検索エイリアスのリストが含まれています。それを取得するには、次を実行します。
$ source googler_at
または、
$ . googler_at
googler @t
を使用して、Wikipedia でhexspeak
を検索する方法は次のとおりです。
$ @w hexspeak
そうそう!他のgoogler
オプションを組み合わせることもできます。作業を容易にするために、起動時にファイルをソースするようにシェルを構成することもできます。
すべてのエイリアスは@
記号で始まり (そのため、 googler @t
という名前になります)、シェル コマンドと競合する可能性は最小限です。自由に独自のエイリアスをファイルに追加し、興味深いエイリアスを提供してください。
BROWSER
環境変数が設定されている場合、 googler
追加設定なしでいくつかのテキストベースのブラウザで動作します。例えば、
$ export BROWSER=w3m
または 1 回限りの使用の場合、
$ BROWSER=w3m googler query
特定のグラフィカル ブラウザがコンソールにメッセージを吐き出すため、 BROWSER
既知のテキストベース ブラウザ (現在はelinks
、 links
、 lynx
、 w3m
またはwww-browser
) のいずれかに設定されていない限り、 googler
デフォルトでブラウザ出力を抑制します。別のテキストベースのブラウザを使用する場合は、 --show-browser-logs
オプションを使用してブラウザ出力を明示的に有効にする必要があります。お使いのブラウザーが十分に人気があると思われる場合は、問題またはプルリクエストを送信してください。ホワイトリストへの登録を検討します。 --show-browser-logs
の詳細については、マニュアル ページを参照してください。
BROWSER
設定して GUI ブラウザを使用する必要がある場合は、オムニプロンプト キーO
を使用します。 googler
テキストベースのブラウザを無視して GUI ブラウザを起動しようとします。ブラウザのログは常にO
で抑制されます。
googler
BSD LSCOLORS
を彷彿とさせる 6 文字の文字列を使用して配色をカスタマイズできます。 6つの文字は色を表します
それぞれ。 6 文字の文字列は、 --colors
オプションの引数として、または環境変数GOOGLER_COLORS
の値として渡されます。
以下の色/スタイルをご用意しております。
手紙 | 色/スタイル |
---|---|
ある | 黒 |
b | 赤 |
c | 緑 |
d | 黄色 |
e | 青 |
f | マゼンタ |
g | シアン |
h | 白 |
私 | 明るい黒 |
j | 明るい赤 |
k | 明るい緑 |
私 | 明るい黄色 |
メートル | 明るい青 |
n | 明るいマゼンタ |
ああ | 明るいシアン |
p | 明るい白 |
ああ | 小文字の色の太字バージョン |
IP | 小文字の明るい色の太字バージョン |
× | 普通 |
× | 大胆な |
y | 逆ビデオ |
Y | 大胆な反転ビデオ |
デフォルトの色の文字列はGKlgxy
です。これは、
ご了承ください
x1b[90m
– x1b[97m
として実装) は、すべてのカラー対応端末エミュレータで利用できるわけではありません。ターミナル エミュレータのマニュアルと、ANSI エスケープ シーケンスに関する Wikipedia の記事を参照してください。
検索結果に展開された URL の代わりにドメイン名を表示するには (そして使用するスペースを減らします)、環境変数DISABLE_URL_EXPANSION
を設定します。
WSLでは、Windows側のGUIブラウザはデフォルトでは検出できません。 BROWSER
環境変数を Windows 実行可能ファイルのパスに明示的に設定する必要があります。たとえば、シェルの rc に次のように記述できます。
$ export BROWSER='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
場合によっては、 googler
表示する結果の数が予想よりも少ない場合があります。たとえば、単一の結果を取得した場合 ( -n 1
)、結果が表示されない場合があります。その理由は、Google は地理データに応じて一部の Google サービス (Youtube など) の結果、地図上の位置などを表示しますが、 googler
これらを省略しようとしているためです。場合によっては、Google (Web サービス) が検索で正確に 10 件の結果 (デフォルト) を表示しないことがあります。これらの結果は可能な限り省略することにしました。これは修正できますが、より多くの処理 (およびより多くの時間) が必要になります。前方に移動するだけで、次の結果セットを取得できます。
デフォルトでは、 googler
いくつかの TCP 最適化を適用し、TLS 1.2 (Python 3.4 以降) を強制します。接続の問題が発生した場合は、 --notweak
スイッチを使用して両方を無効にしてみてください。
言語がdk
(デンマーク)、 fi
(フィンランド)、またはis
(アイスランド) の場合、Google ニュース サービスは利用できません。 -l en
使用します。詳細については、#187 を参照してください。
一部のユーザーは、macOS 上の iTerm2 で色付きのオムニプロンプトに関する問題 (問題 #203 を参照) を報告しています。単純なオムニプロンプトを強制するには:
export DISABLE_PROMPT_COLOR=1
最初にプル リクエストを提出しましたが、最後の変更が 7 年前に行われたことがわかりました。また、原作者の Henri Hakkinen による GitHub 活動は過去 1 年間ありません。私はgoogler
という名前のプロジェクト用にこの独立したリポジトリを作成しました。元の著作権情報を保持しました (ただし、 googler
現在では本質的に異なります)。
Google は、結果を JSON 形式で返す検索 API を提供しています。ただし、公式ドキュメントからの私の理解によると、API はカスタム検索エンジンの既存のインスタンスに対してクエリを発行し、無料での検索クエリは 1 日あたり 100 件に制限されています。さらに、プランが変更されたり、他の方法で API が制限されたりした場合に、支払いを躊躇しています。そのため、Google の計画やポリシーと連携したり、追跡可能な個人のカスタム検索 API キーや識別子を一般公開したりすることは控えました。私は、オープンで無料の仕様である HTML を取得するというブラウザーの方法を維持しました。
googler
用の Rofi スクリプトはここにあります。匿名ユーザーによって書かれたもので、テストされておらず、弊社ではメンテナンスしていません。
Albert Launcher Python プラグイン リポジトリ (awesome-albert-plugins) には、googler を使用するさまざまな Web サイト用の候補表示可能な検索プラグインが含まれています。デモと使用手順については後者を参照してください。
プルリクエストは大歓迎です。 TODO のリストについては #209 を参照してください。
jeremija と Narrat の貢献に心より感謝いたします。
ロゴの著作権 © 2017 Zhiming Wang.
コードと一緒に自由に再配布したり、このプロジェクトを説明したりリンクしたりするときに使用できます。その修正版を作成したり、プロジェクトのロゴやアイコンにしたり (個人的なフォークやアップストリームを目的としたフォークを除く)、書面による許可なしに使用したりしてはなりません。