4 façons de faire une recherche sur le Web à partir du terminal Linux
Que vous soyez un habitant confirmé de la ligne de commande ou simplement curieux de terminal, vous vous êtes peut-être demandé à quel point il est facile de faire une recherche sur le Web avec une simple commande textuelle. Eh bien, Linux étant Linux, il y a plusieurs options à votre disposition.
La façon la plus familière : Google dans un navigateur
Avouons-le, Google a été si dominant au cours des 25 dernières années que le nom du moteur de recherche est devenu un verbe signifiant « faire une recherche sur Internet ». « Il y a de fortes chances que vous utilisiez Google dans un navigateur Web graphique aujourd’hui, et que toute alternative doit être à la hauteur de la même chose.
Par conséquent, la recherche sur Google dans un navigateur, à partir de la ligne de commande plutôt que d’une interface graphique, sera probablement votre point de départ par défaut. Vous utilisez peut-être déjà un navigateur textuel comme Lynx; Sinon, vous devrez vous préparer à une période d’adaptation. La consultation d’une version textuelle d’un site Web exposera tous ses défauts, du texte alternatif manquant à une dépendance excessive à JavaScript.
Cela dit, l’interface de recherche de Google est connue pour son minimalisme et cela aide beaucoup à la visualiser dans un navigateur de texte :
Il est assez facile de naviguer jusqu’au champ de recherche, d’entrer votre recherche et de voir les résultats. Vous pouvez même aller à la page de résultats immédiatement, si vous vous souvenez de l’URL et du paramètre :
lynx http://www.google.com/search?q=search+from+commandline
L’exploration de ces résultats, cependant, n’est pas une expérience aussi agréable :
Vous préférerez peut-être utiliser un autre service. DuckDuckGo est un moteur de recherche axé sur la protection de la vie privée qui utilise un grand nombre de sources, y compris Bing, pour ses résultats. Avec un navigateur de texte, il a une interface encore plus minimale que celle de Google :
Et les résultats de recherche de DuckDuckGo sont beaucoup plus faciles à lire que ceux de Google, bien qu’ils ne soient que du texte. Ils sont clairement numérotés et séparés par des espaces blancs :
L’autre option importante est Bing, mais j’ai trouvé le moteur de recherche de Microsoft difficile à utiliser avec un navigateur de texte. En fait, si vous avez vraiment besoin d’utiliser Bing, je vous recommande d’aller directement dans ses résultats plutôt que d’essayer d’utiliser son formulaire de recherche :
lynx "https://www.bing.com/search?q=search+from+commandline"
Une interface terminale pour DuckDuckGo : ddgr
Si vous êtes satisfait du service de DuckDuckGo, il y a d’autres bonnes nouvelles sous la forme d’un client terminal. ddgr est un outil de ligne de commande, écrit en Python, qui recherche DuckDuckGo. Il présente les résultats de recherche dans votre terminal, chacun avec un titre, une description et un domaine ou une URL clairs.
Par défaut, ddgr fonctionne en mode interactif qui fournit le moyen le plus simple d’ouvrir un résultat spécifique. Commencez par entrer une recherche sur la ligne de commande :
ddgr linux
DDGR affichera une page de résultats, dix d’entre eux par défaut :
En bas, ddgr présente une ligne de commande que vous pouvez utiliser de manière interactive pour affiner les résultats ou prendre d’autres mesures. Entrez le numéro du résultat que vous souhaitez voir. Si vous avez configuré un navigateur de terminal, en utilisant la variable d’environnement BROWSER, largement prise en charge, il s’ouvrira et affichera le résultat que vous avez choisi. Vous pouvez également ouvrir les résultats dans votre navigateur graphique si vous préférez.
Résultats de recherche limités avec l’API DuckDuckGo
À première vue, l’API de DuckDuckGo semble prometteuse et elle est très facile à utiliser. Par exemple, vous pouvez obtenir une liste des résultats de réponse instantanée au format JSON à l’aide de ce point de terminaison :
https://api.duckduckgo.com/?q=<search-term>&format=json
Avec curl et un outil comme jq pour analyser JSON, vous pouvez vous rapprocher de la recherche de résultats utiles dans un format qui peut être utilisé pour les scripts et le traitement ultérieur :
curl -s 'https://api.duckduckgo.com/?q=linux&format=json' |
jq -r '.AbstractURL'
Cependant, ces résultats sont très limités en raison de la façon dont DuckDuckGo octroie des licences pour ses résultats syndiqués. Cela vaut la peine d’expérimenter les termes de recherche dans le contexte de vos propres besoins, mais assurez-vous de savoir que cette approche ne produira pas les mêmes résultats qu’une recherche sur duckduckgo.com.
Une API de recherche tierce complète, à un coût
SerpApi est une alternative non officielle à l’API de DuckDuckGo. La différence est qu’il peut fonctionner sur plusieurs moteurs de recherche et fournit des résultats de recherche en texte intégral. L’inconvénient est que vous devrez payer ou faire face à la limite mensuelle de 100 recherches sur le plan gratuit. Si vous pouvez accepter ces limites, SerpApi est un bon choix pour les résultats de recherche scénarisés :
curl -s 'https://serpapi.com/search?engine=duckduckgo&q=<search-term>&api_key=<api-key>' |
jq '.organic_results[0]'
Bien que HTTPS aide à prévenir certains types de fuites de données, taper votre clé API sur la ligne de commande présente un risque pour la sécurité. Pour atténuer cela, examinez les options de curl, en particulier -K, -G et -d.
L’exécution de cette commande vous donnera un objet représentant le premier résultat de recherche de DuckDuckGo :
L’API complète offre de nombreuses options et prend en charge plusieurs fournisseurs de recherche, avec un accent compréhensible sur Google. Mais le prix est élevé – 75 $par mois pour un maximum de 5 000 recherches – il est donc plus approprié pour le travail professionnel.
Chacune de ces méthodes de recherche en ligne de commande a une courbe d’apprentissage et présente ses propres avantages et inconvénients. Cela offre une variété d’options, vous voudrez donc bien comprendre ce que vous voulez accomplir avant d’en choisir une. Personnellement, je pense que ddgr offre le meilleur compromis entre convivialité et fonctionnalité.








