4 façons de rechercher le Web à partir du terminal Linux
Que vous soyez une ligne de commande confirmée, ou tout simplement du terminal-curieux, vous vous êtes peut-être demandé à quel point il est facile de rechercher le Web avec une commande de texte simple. Eh bien, Linux étant Linux, il existe plusieurs options à votre disposition.
Sommaire
La manière la plus familière: Google dans un navigateur
Avouons-le, Google est si dominant depuis 25 ans que le nom du moteur de recherche est devenu un verbe signifiant «rechercher sur Internet». Il y a de fortes chances que vous utilisez Google dans un navigateur Web graphique aujourd'hui, et toute alternative doit livrer de 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 GUI, sera probablement votre lieu de départ par défaut. Vous pouvez déjà utiliser un navigateur textuel comme Lynx; Sinon, vous devrez vous préparer à une période d'ajustement. La visualisation d'une version texte uniquement d'un site Web exposera tous ses défauts, du texte alt manquant à une sur-dépendance sur JavaScript.
Cela dit, l'interface de recherche de Google est connue pour son minimalisme et cela aide beaucoup lors de la visualisation dans un navigateur de texte:
Il est assez facile de naviguer dans la zone de recherche, de saisir votre recherche et de voir les résultats. Vous pouvez même accéder immédiatement à 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
Explorer ces résultats, cependant, n'est pas une expérience aussi agréable:
Vous préférez peut-être utiliser un service différent. 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 celui de Google, bien qu'il soit toujours uniquement en texte. Ils sont clairement numérotés et séparés par l'espace blanc:
L'autre option significative est Bing, mais j'ai trouvé que le moteur de recherche de Microsoft est difficile à utiliser avec un navigateur de texte. En fait, si vous avez vraiment besoin d'utiliser Bing, je vous recommande d'aller à ses résultats directement plutôt que d'essayer d'utiliser son formulaire de recherche:
$ lynx "https://www.bing.com/search?q=search+from+commandline"
Un frontal terminal à DuckDuckgo: DDGR
Si vous êtes satisfait du service de Duckduckgo, il y a plus de 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 URL clairs.
Par défaut, DDGR fonctionne dans un mode interactif qui fournit le moyen le plus simple d'ouvrir un résultat spécifique. Commencez par saisir une recherche sur la ligne de commande:
ddgr linux
DDGR affichera une page de résultats, dix 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, en utilisant la variable d'environnement du navigateur largement soutenu, il s'ouvrira et affichera le résultat que vous avez choisi. Vous pouvez également avoir des résultats ouverts 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 c'est très facile à utiliser. Par exemple, vous pouvez obtenir une liste de résultats de réponse instantanée au format JSON en utilisant ce point de terminaison:
https://api.duckduckgo.com/?q=&format=json
Avec Curl et un outil comme JQ pour analyser JSON, vous pouvez vous rapprocher des 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 licence ses résultats syndiqués. Cela vaut la peine d'expérimenter les termes de recherche dans le contexte de vos propres exigences, mais assurez-vous de réaliser 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 à la propre 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 gérer 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 scénarisés:
$ curl -s 'https://serpapi.com/search?engine=duckduckgo&q=&api_key=' |
jq '.organic_results(0)'
Bien que HTTPS aide à empêcher certains types de fuites de données, la saisie de votre clé API sur la ligne de commande est un risque de sécurité. Pour atténuer cela, étudiez 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 propose de nombreuses options et prend en charge plusieurs fournisseurs de recherche, avec un accent compréhensible sur Google. Mais le prix est cher – 75 $ / mois pour jusqu'à 5 000 recherches, donc c'est plus approprié pour le travail professionnel.
Chacune de ces méthodes de recherche Web en ligne de commande a une courbe d'apprentissage et est livrée avec 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 réaliser avant de vous en installer. Personnellement, je pense que DDGR offre le meilleur compromis entre l'utilisabilité et la fonctionnalité.