Una búsqueda web desde la línea de comandos de Linux

Hay varios navegadores web de línea de comandos , y aunque todavía no soy un usuario aficionado a ninguno de ellos, de vez en cuando me empezó a gustar la experiencia de navegar por la web desde una simple línea de comandos.

Una gran molestia es que la mayor parte del tiempo que se pasa en la web se realiza haciendo búsquedas en la web en lugar de navegar por una página. El navegador gráfico que uso con más frecuencia, Opera, maneja esto bien ya que la barra de búsqueda pregunta como una interfaz para búsquedas, puedo escribir "g algo" para buscar en Google, "b algo" para buscar en Bing y "w algo" para buscar en Wikipedia. por ejemplo.

¿Existe una extensión o complemento para los navegadores web de línea de comandos, que permite realizar una búsqueda web directamente desde la línea de comandos de Linux? Lo que quiero decir desde el shell, debería poder escribir, por ejemplo:

program_name "words to search"

y estar directamente en la página de resultados, en lugar de tener que hacerlo en dos pasos

lynx www.bing.com
[type my search there]

Nota: Aquí uso lynxy Bing como ejemplos, pero podría ser cualquier motor de búsqueda y cualquier navegador de línea de comandos.

¿Qué le pasa a Lynx? Prueba esto: lynx http://www.google.com/search?q=search+from+commandline:) Básicamente, una vez que conoces la sintaxis de la URL para realizar una búsqueda, puedes llamarla directamente.
¡Vaya, eso es inteligente! Apuesto a que es posible crear un script de shell simple para crear esas URL inventadas para usted. Sin embargo, reemplazar espacios con '+' es la parte más complicada.
Claro que lo es. Como te gusta la idea, encuentra mi respuesta a continuación :)

Respuestas (4)

Como señala Izzy, hacer una búsqueda en la web directamente sobre lynx funciona de maravilla. Sin embargo, si no se siente cómodo con esa solución, Googler puede hacer lo que le pidió (pero solo para buscar en Google). Deberá compilar e instalar usted mismo, pero se dan instrucciones para eso.

También puede probar surfraw , está disponible en repositorios (al menos en sistemas Debian). Puede buscar en varios motores, por lo que tal vez pueda cumplir mejor con sus requisitos.

¿Qué le pasa a Lynx? Prueba esto: lynx http://www.google.com/search?q=search+from+commandline:) Básicamente, una vez que conoces la sintaxis de la URL para realizar una búsqueda, puedes llamarla directamente.

Para hacerlo más fácil, puede escribir un pequeño script de shell (o alias), consulte ¿Cómo codificar en urlen los datos para el comando curl? en nuestro sitio hermano para un millón de ejemplos interesantes. De acuerdo con nuestra regla para incluir algunos elementos esenciales:

#!/bin/bash
url="http://www.google.com/search?q="
value="$*"
encoded_value=$(python -c "import urllib; print urllib.quote('''$value''')")
lynx ${url}${encoded_value}

Este pequeño fragmento requeriría la instalación de Python, lo que no debería ser un gran problema en los sistemas Linux. Si prefiere Perl, o quiere escribir algo en Bash simple: consulte la página vinculada en SO, encontrará código para casi todo. Aquí hay uno que usaría solo elementos básicos (que se envía preinstalado con prácticamente cualquier sistema Linux):

#!/bin/bash
url="http://www.google.com/search?q="
value="$*"
encoded_value=$(echo "$1" | sed -e 's/%/%25/g' -e 's/ /%20/g' -e 's/!/%21/g' -e 's/"/%22/g' -e 's/#/%23/g' -e 's/\$/%24/g' -e 's/\&/%26/g' -e 's/'\''/%27/g' -e 's/(/%28/g' -e 's/)/%29/g' -e 's/\*/%2a/g' -e 's/+/%2b/g' -e 's/,/%2c/g' -e 's/-/%2d/g' -e 's/\./%2e/g' -e 's/\//%2f/g' -e 's/:/%3a/g' -e 's/;/%3b/g' -e 's//%3e/g' -e 's/?/%3f/g' -e 's/@/%40/g' -e 's/\[/%5b/g' -e 's/\\/%5c/g' -e 's/\]/%5d/g' -e 's/\^/%5e/g' -e 's/_/%5f/g' -e 's/`/%60/g' -e 's/{/%7b/g' -e 's/|/%7c/g' -e 's/}/%7d/g' -e 's/~/%7e/g')
lynx ${url}${encoded_value}

Guarde la variante que prefiera como, por ejemplo gsearch, hágala ejecutable y listo:

gsearch awful bash examples

:)

Si prefiere un motor de búsqueda diferente: https://duckduckgo.com/?q=funcionaría para DuckDuckGo :)

Google

Consulte estos scripts de Python que permiten buscar y descargar archivos desde la línea de comandos. Se basa en los resultados de búsqueda de Google.

  • google_dlguión (recomendado).

    Uso:

    ./google_dl "search phrase"
    ./google_dl -s http://www.example.com/ -f pdf ""
    
  • gsrchDwnguión (basado en el guión de neo ).

    Uso:

    ./gsrchDwn.py --query "search phrase"
    ./gsrchDwn.py --query "site:http://www.example.com/" --ftype pdf
    

Nota: soy el mantenedor de los dos scripts mencionados.

Ambos están implementando xgooglela biblioteca de Python. Mi bifurcación de esta biblioteca se basa en la pkrumins/xgoogleversión .

Otros proyectos a considerar:

  • googler

    Una poderosa herramienta para Google (web y noticias) y Google Site Search desde la línea de comandos.


Pato Pato a ganar

Usando DuckDuckGo a través de la línea de comandos:

  • Solo ve a: https://duckduckgo.com/tty/

    Un motor de búsqueda de línea de comandos implementado en JavaScript. No es necesario instalar nada.

  • Use ddgrla utilidad , una utilidad cmdline para buscar DuckDuckGo desde la terminal.

Hola , ¿quieres buscar desde la terminal usando un script de shell ?

Responder:

  • #!/usr/bin/env bash

  • claro

  • echo "Nombre del motor de búsqueda"

  • echo -n "Buscar: "

  • Lea el texto

  • abre "https://www.google.com/?q=$texto"

  • salida 1

¿Eres feliz?, házmelo saber....

Que tengas un buen día :)