4 façons de rechercher sur le Web à partir du terminal Linux
Que vous soyez un adepte confirmé de la ligne de commande ou simplement un curieux des terminaux, vous vous êtes peut-être demandé à quel point il est facile de rechercher sur le Web avec une simple commande de texte. Eh bien, Linux étant Linux, il y a plusieurs options à votre disposition.
La méthode la plus familière : Google dans un navigateur
Qu’on se le dise, 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 « rechercher sur Internet ». " Il y a de fortes chances que vous utilisiez Google dans un navigateur Web graphique aujourd’hui, et toute alternative doit offrir la même manière.
Par conséquent, la recherche de Google dans un navigateur, à partir de la ligne de commande au lieu 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 ; Si ce n’est pas le cas, vous devrez vous préparer à une période d’adaptation. L’affichage d’une version texte d’un site Web exposera tous ses défauts, de l’absence de texte alternatif à une dépendance excessive à JavaScript.
Cela dit, l’interface de recherche de Google est connue pour son minimalisme, ce qui aide beaucoup lorsqu’on la visualise dans un navigateur de texte :
Il est assez facile de naviguer jusqu’à la zone de recherche, d’entrer votre recherche et de voir les résultats. Vous pouvez même aller immédiatement sur la page de résultats, 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 confidentialité 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 contiennent que du texte. Ils sont clairement numérotés et séparés par des espaces :
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 de terminal. ddgr est un outil en 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 offre 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 afficher. Si vous avez configuré un navigateur de terminal à l’aide de 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 de 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 approcher de la récupération de résultats utiles dans un format qui peut être utilisé pour l’écriture de 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 licencie ses résultats syndiqués. Cela vaut la peine d’expérimenter avec 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 abordable
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 limitations, SerpApi est un bon choix pour les résultats de recherche par script :
$ curl -s 'https://serpapi.com/search?engine=duckduckgo&q=<search-term>&api_key=<api-key>' |
jq '.organic_results[0]'
Bien que HTTPS permette d’éviter certains types de fuites de données, la saisie de votre clé API sur la ligne de commande constitue 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 dispose de nombreuses options et prend en charge plusieurs fournisseurs de recherche, avec un accent compréhensible sur Google. Mais les prix sont élevés (75 $/mois pour un maximum de 5 000 recherches), ils sont donc plus appropriés pour le travail professionnel.
Chacune de ces méthodes de recherche Web en ligne de commande a une courbe d’apprentissage et présente ses propres avantages et inconvénients. Cela donne une variété d’options, vous voudrez donc avoir une bonne compréhension de ce que vous voulez accomplir avant d’en choisir une. Personnellement, je pense que ddgr offre le meilleur compromis entre convivialité et fonctionnalité.