ウェブサイト検索

Linuxターミナルからウェブを検索する4つの方法


コマンドラインに精通している人でも、端末に興味があるだけの人でも、シンプルなテキストコマンドでウェブを検索するのがどれくらい簡単か疑問に思ったことがあるかもしれません。さて、LinuxはLinuxなので、あなたの手元にはいくつかの選択肢があります。

最も身近な方法:ブラウザでのGoogle

考えてみれば、Googleは過去25年間非常に支配的であり、検索エンジンの名前は「インターネットを検索する」を意味する動詞となっています。今日、あなたはグラフィカルなウェブブラウザでGoogleを使っている可能性が高く、他の選択肢も同じように機能する必要があります。

したがって、ブラウザでGoogleを検索することは、GUIではなくコマンドラインで行うと、おそらくデフォルトの出発点となるでしょう。すでにLynxのようなテキストベースのブラウザを使用しているかもしれませんが、そうでない場合は、調整期間に備える必要があります。ウェブサイトのテキストのみのバージョンを見ることで、altテキストの欠如から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が使いやすさと機能性の最良の妥協点を提供していると思います。

関連記事: