Linuxターミナルからウェブを検索する4つの方法
コマンドラインに慣れ親しんでいる人でも、ターミナルに興味がある人でも、シンプルなテキストコマンドでウェブを検索するのがどれほど簡単か疑問に思ったことがあるかもしれません。さて、LinuxはLinuxなので、いくつかの選択肢があります。
最も馴染みのある方法:ブラウザでのGoogle
正直に言うと、Googleは過去25年間非常に支配的であり、検索エンジンの名前は「インターネットを検索する」という動詞になっています。おそらく、あなたは今日、グラフィカルなウェブブラウザでGoogleを使用しており、他の選択肢も同じように機能しなければなりません。
したがって、GUIの代わりにコマンドラインからブラウザでGoogleを検索することが、おそらくあなたのデフォルトの出発点になるでしょう。すでにLynxのようなテキストベースのブラウザを使用しているかもしれませんが、そうでない場合は、調整期間に備える必要があります。ウェブサイトのテキストのみのバージョンを表示すると、欠落した代替テキストからJavaScriptへの過度の依存まで、すべての欠陥が明らかになります。
そうは言っても、Googleの検索インターフェースはそのミニマリズムで知られており、テキストブラウザで表示する際に非常に役立ちます。
検索ボックスに移動して検索を入力し、結果を見るのは非常に簡単です。URLとパラメータを覚えていれば、結果ページにすぐに移動することもできます。
$ lynx http://www.google.com/search?q=search+from+commandline
しかし、それらの結果を探ることは、あまり快適な体験ではありません。
別のサービスを利用することを好むかもしれません。DuckDuckGoはプライバシー重視の検索エンジンで、結果にはBingを含む多数のソースを使用しています。テキストブラウザを使用すると、Googleよりもさらにシンプルなインターフェースになります。
DuckDuckGoの検索結果は、依然としてテキストのみであるにもかかわらず、Googleのものよりもはるかに読みやすいです。それらは明確に番号が付けられ、空白で区切られています。
もう一つの重要な選択肢はBingですが、私はMicrosoftの検索エンジンをテキストブラウザで使うのが難しいと感じています。実際、Bingを本当に使う必要がある場合は、検索フォームを使おうとするのではなく、直接その結果にアクセスすることをお勧めします。
$ lynx "https://www.bing.com/search?q=search+from+commandline"
DuckDuckGoへのターミナルフロントエンド:ddgr
DuckDuckGoのサービスに満足しているなら、ターミナルクライアントという形でさらに良いニュースがあります。ddgrは、DuckDuckGoを検索するためのPythonで書かれたコマンドラインツールです。検索結果はターミナルに表示され、それぞれに明確なタイトル、説明、ドメインまたはURLが付いています。
デフォルトでは、ddgrはインタラクティブモードで動作し、特定の結果を開く最も簡単な方法を提供します。コマンドラインに検索を入力することから始めてください。
ddgr linux
ddgrは、デフォルトで10件の結果を表示するページを表示します。
下部には、結果を洗練させたり、さらなるアクションを取るためにインタラクティブに使用できるコマンドラインが表示されます。表示したい結果の番号を入力してください。ターミナルブラウザを設定している場合は、広くサポートされているBROWSER環境変数を使用すると、選択した結果が開いて表示されます。好みに応じて、結果をグラフィカルブラウザで開くこともできます。
DuckDuckGo APIによる限定的な検索結果
一見すると、DuckDuckGoのAPIは有望に見え、非常に使いやすいです。例えば、このエンドポイントを使用してJSON形式でインスタントアンサーの結果のリストを取得できます。
https://api.duckduckgo.com/?q=<search-term>&format=json
curlとjqのようなツールを使ってJSONを解析することで、スクリプトやさらなる処理に使用できる形式で有用な結果を取得することができます。
$ curl -s 'https://api.duckduckgo.com/?q=linux&format=json' |
jq -r '.AbstractURL'
しかし、これらの結果はDuckDuckGoがそのシンジケート結果をどのようにライセンスしているかによって非常に限られています。自分の要件に基づいて検索用語を試す価値はありますが、このアプローチがduckduckgo.comでの検索と同じ結果を生み出さないことを理解しておくことが重要です。
包括的なサードパーティ検索API—コストがかかります
SerpApiはDuckDuckGoの公式APIの非公式な代替手段です。違いは、いくつかの検索エンジンで機能し、全文検索結果を提供できることです。欠点は、支払うか、無料プランの月間100検索の制限に対処する必要があることです。これらの制限を受け入れられるのであれば、SerpApiはスクリプト化された検索結果にとって良い選択肢です。
$ curl -s 'https://serpapi.com/search?engine=duckduckgo&q=<search-term>&api_key=<api-key>' |
jq '.organic_results[0]'
HTTPSは特定の種類のデータ漏洩を防ぐのに役立ちますが、コマンドラインにAPIキーを入力することはセキュリティリスクです。それを軽減するために、curlのオプション、特に-K、-G、-dを調査してください。
このコマンドを実行すると、DuckDuckGoからの最初の検索結果を表すオブジェクトが得られます。
フルAPIには多くのオプションがあり、いくつかの検索プロバイダーをサポートしており、Googleに対する理解しやすい焦点があります。しかし、価格は高く、月額75ドルで最大5,000回の検索が可能なため、プロフェッショナルな作業により適しています。
これらのコマンドラインウェブ検索方法のそれぞれには学習曲線があり、それぞれに利点と欠点があります。これによりさまざまな選択肢が提供されるため、どれかに決める前に達成したいことをよく理解しておく必要があります。個人的には、ddgrが使いやすさと機能性の間で最も良い妥協を提供していると思います。